Плагин Struts Jquery: удаленные диалоги с параметрами - PullRequest
2 голосов
/ 25 августа 2010

У меня есть несколько сложная проблема.

У меня есть сетка, определенная (используя плагин Struts2-JQuery Grid).В одном из столбцов есть специальный модуль форматирования, который вызывает функцию Javascript для добавления кнопки в этот столбец.(Примечание: я абсолютно ненавижу это делать).

Цель кнопки - открыть диалоговое окно.Это диалоговое окно содержит список флажков, который не может быть отображен в сетке.

Каким-то образом мне нужно передать параметр в действие, которое возвращает представление, которое будет отображаться в диалоге.

Так как это несколько сложно, вот код:

Определение сетки:

<sjg:grid gridModel="gridModel"
          id="gridTable"
          caption="Manage Users"
          dataType="json"
          href="%{remoteUrl}"
          pager="true"
          rowList="10,15,20"
          rowNum="15"
          rownumbers="true"
          cellEdit="true"
          cellurl="%{editCell}"
        />
    <sjg:gridColumn name="id"
                    hidden="false"
                    title="id"
                    formatter="integer"
                    index="id"
                    key="true"
    />
    <!-- Other columns ommitted -->
    <sjg:gridColumn name="manageRoles"
                    title="Manage Roles"
                    sortable="false"
                    align="center"
                    formatter="formatRoles"
            />
</sjg:grid>

Пользовательский форматировщик Javascript:

    function formatRoles(cellValue, options, rowObject) {
        return "<button onClick='openRoleDialog(" + rowObject.id + ")'>Edit Roles</button>";
    }

Определение диалога:

<s:url id="manageRoleUrl" action="viewRoles" namespace="userManagement" />
<sj:dialog id="manageRoles" title="Manage Roles" autoOpen="false" modal="true" href="%{manageRoleUrl}" resizable="true"/>

Удаленное управление ролями JSP (обрезается):

    <s:form id="roleChoiceForm" action="/userManagement/editUserRole">
        <s:hidden id="id" name="id" />
        <s:checkboxlist list="roleChoices" name="selectedNameChoices" />
    </s:form>

Поскольку я получаю идентификатор объекта сетки через javascript, но использую тег Jlib JSP для диалога, как я могу передать идентификатор?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

Шаг 1: javascript для события «selected» заполняет поле формы и открывает диалоговое окно

<sjg:grid gridModel="gridModel"
onSelectRowTopics="rowselectEvent"

$.subscribe('rowselectEvent', function(event,data) {
    id = event.originalEvent.id;
    $("#idSelected").val(id);
    $("#manageRoles").dialog("open");
});

<s:form id="idSelectedForm">
    <s:hidden id="idSelected" name="idSelected" value="unset"></s:hidden>
</s:form>

Шаг 2: атрибут «formIds» тега sj: dialog используется для отправкиданные формы

<sj:dialog id="manageRoles" formIds="idSelectedForm"
0 голосов
/ 21 января 2011

вам нужно передать «cellvalue». Ваш столбец «Управление ролями» должен иметь атрибут «имя», такой же, как атрибут с уникальным идентификатором строки. вероятно 'id' в вашем случае.

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