Строка не будет выбрана - MVC 3 - PullRequest
       7

Строка не будет выбрана - MVC 3

0 голосов
/ 06 сентября 2011

Я разрабатываю приложение MVC 3 на C # и пытаюсь сделать строку в таблице серой, когда нажимается «Выбрать» рядом со строкой. Однако этого не происходит.

Вот мой код в представлении:

@using (Html.BeginForm("Confirm", "Invoice"))
{

foreach (var item in Model)
{
    string selectedRow = "";
    if (item.InvoiceNumberID == ViewBag.InvoiceNumberID)
    {
        selectedRow = "selectedRow";
    } 

<tr class="@selectedRow" valign="top">
            <td> 
           <a href='javascript:void(0)' class='select' data-id=@item.InvoiceNumberID >Select</a>


        </td> 
     <td>
        @Html.DisplayFor(modelItem => item.InvoiceNumberID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.InvoiceAmount)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.InvoiceMonth)
    </td>

А вот и мой CSS:

.selectedRow 
{ 
background-color: #EEEEEE; 
}

Код из примера, который я пытался использовать для моего проекта, приведен ниже:

@foreach (var item in Model.Instructors) 
{ 
    string selectedRow = ""; 
    if (item.PersonID == ViewBag.PersonID) 
    { 
        selectedRow = "selectedrow"; 
    } 
    <tr class="@selectedRow" valign="top"> 
        <td> 
            @Html.ActionLink("Select", "Index", new { id = item.PersonID }) | 
            @Html.ActionLink("Edit", "Edit", new { id = item.PersonID }) | 
            @Html.ActionLink("Details", "Details", new { id = item.PersonID }) | 
            @Html.ActionLink("Delete", "Delete", new { id = item.PersonID }) 
        </td> 
        <td> 
            @item.LastName 
        </td> 
        <td> 
            @item.FirstMidName 
        </td> 
        <td> 
            @String.Format("{0:d}", item.HireDate) 
        </td> 
        <td> 
            @if (item.OfficeAssignment != null) 
            { 
                @item.OfficeAssignment.Location  
            } 
        </td> 
        <td>
            @{
                foreach (var course in item.Courses)
                {
                    @course.CourseID @:&nbsp; @course.Title <br />
                }
            }
        </td>
    </tr> 
} 

И от их контроллера:

public ActionResult Index(Int32? id, Int32? courseID)
    {
        var viewModel = new InstructorIndexData();
        viewModel.Instructors = db.Instructors
            .Include(i => i.Courses.Select(c => c.Department))
            .OrderBy(i => i.LastName);

        if (id != null)
        {
            ViewBag.PersonID = id.Value;
            viewModel.Courses = viewModel.Instructors.Where(i => i.PersonID == id.Value).Single().Courses;
        }


        if (courseID != null)
        {
            ViewBag.CourseID = courseID.Value;

            var selectedCourse = viewModel.Courses.Where(x => x.CourseID == courseID).Single();
            db.Entry(selectedCourse).Collection(x => x.Enrollments).Load();
            foreach (Enrollment enrollment in selectedCourse.Enrollments)
            {
                db.Entry(enrollment).Reference(x => x.Student).Load();
            }

            viewModel.Enrollments = viewModel.Courses.Where(x => x.CourseID == courseID).Single().Enrollments;
        }

        return View(viewModel);
    }

Хотя намерения иные - все, что я хочу увидеть, - это изменить цвет строки - на примере, который я использовал, они хотели отобразить связанные данные, которые мне не нужны.

Спасибо, Эй

1 Ответ

0 голосов
/ 06 сентября 2011

Подумай об этом.Как будет выполняться код вашего сервера, когда вы установите флажок.Без некоторого JavaScript, вызывающего обратную передачу, ваш серверный код знает, какой флажок установлен.Тем не менее, это, вероятно, не лучший способ справиться с этим.Ваш клиентский javascript должен выполнить добавление класса.

Вы, кажется, не понимаете различий между функциональностью на стороне сервера и на стороне клиента, возможно, вам нужно немного узнать о том, что происходит, когда вы нажимаете флажок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...