установить активный аккордеон в Jquery - PullRequest
0 голосов
/ 06 июня 2009

Я использую MVC с C # также с jquery.

Я использую аккордеон jquery, чтобы просмотреть список данных о сотрудниках. При нажатии на гармошку он покажет детали сотрудника.

Когда я нажимаю кнопку Изменить сотрудника, он переходит на страницу сведений о сотруднике, и после сохранения в нем отображается EmployeeDetailsID. Когда я возвращаюсь на страницу аккордеона, аккордеон с последним обновленным сотрудником должен быть открыт по умолчанию (т. Е. Аккордеон должен быть открыт на основе EmployeeDetailsID в сеансе).

Подскажите, пожалуйста, как это сделать.

Ниже приведен код для справки.

<html>
<body>
<div class="accordion" id="accordion">
    <%if (Model != null && Model.EmployeeList != null && Model.EmployeeList.Count > 0)
              {
                  foreach (EmployeeDetails _employee in Model.EmployeeList)
                  {
    %>
    <h3>
        <div class="heading_acc">
            <a href="#" onclick="javascript:ShowEmployees(<%= _employee.EmployeeDetailsID %>);"
                id="aEmployee"><b><span class="dash_title_bar_right">
                    <%=Html.Encode(_employee.EmployeeName)%></b> </a>
        </div>
    </h3>
    <div>
        <div id="divReturns<%= _employee.EmployeeDetailsID %>">
            <table width="100%" class="list_contentregion">
                <tr>

                    <th class="dash_table_head">
                        Name
                    </th>
                    <th class="dash_table_head">
                        Role
                    </th>
                    <th class="dash_table_head">
                        Branch
                    </th>
                    <th class="dash_table_head">
                        Last Updated
                    </th>
                </tr>
                <tr id="trEmp<%= _employee.EmployeeDetailsID %>" class="dash_label">

                    <td>
                        <div id="lblName<%= _employee.EmployeeDetailsID %>">
                        </div>
                    </td>
                    <td>
                        <div id="lblRole<%= _employee.EmployeeDetailsID %>">
                        </div>
                    </td>
                    <td>
                        <div id="lblBranch<%= _employee.EmployeeDetailsID %>">
                        </div>
                    </td>
                    <td>
                        <div id="lblTime<%= _employee.EmployeeDetailsID %>">
                        </div>
                    </td>
                </tr>
            </table>
        </div>
    </div>
    <%}
              } %>
</div>

</body>
</html>

1 Ответ

1 голос
/ 31 июля 2009

Когда вы редактируете данные своего сотрудника, я ожидаю, что вы возвращаете пользователя на правильную страницу в списке сотрудников.

Исходя из этого, когда вы просматриваете список своих сотрудников, вы можете сравнить значение _employee.EmployeeDetailsID с переменной сеанса и затем записать номер изменения цикла в блок , который вызывает следующий код.

$("#accordion").accordion( 'activate' , loopIndex);

Документацию по аккордеону jQuery можно найти здесь, а также подробности этого метода http://docs.jquery.com/UI/Accordion#method-activate

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

Я бы рекомендовал возвращать переменную в качестве значения маршрутизации через систему маршрутизации MVC. см. следующий код в качестве примера.

new { Controller = "Employee", Action = "List", Page = pageNumber, EmployeeId = EmployeeDetailsID }
...