2010-10-14 5 views
0

Я использую библиотеку displaytag для отображения списка объектов «разрешения». Объект разрешения содержит идентификатор, имя, значение и связанный с ним идентификатор приложения. При создании «группы пользователей» задается имя группы пользователей, описание и выбираются разрешения для добавления к ней, прокручивая список в таблице displaytag и проверяя разрешения, необходимые с помощью флажка.displaytag library and selected checkbox values ​​

Проблема возникает, когда я перехожу к «редактированию» группы пользователей. Я хочу загрузить таблицу displaytag со всем списком доступных объектов разрешений, как это делается на странице создания, но мне нужно установить «выбранное» значение флажка для разрешений, которые уже существуют для этой группы пользователей.

Моя проблема заключается в том, как установить выбранный атрибут в поле. Есть ли какая-то «логическая» функциональность для библиотеки displaytag, где я могу опционально установить выбранный атрибут тега флажка?

Ниже приведен код, как это для «создания» в UserGroup:

<display:table class="dataTable" defaultsort="1" name="userGroupForm.permissionList" id="tbldata" requestURI="/createUserGroup.do" pagesize="100"> 
    <display:setProperty name="paging.banner.onepage" value=""></display:setProperty> 
    <display:column class="alignCenter" title=""><input type="checkbox" name="permIDs" value='<%=((Permission)pageContext.getAttribute("tbldata")).getPermissionCodeID() %>' /></display:column> 
    <display:column class="alignLeft" property="permName" titleKey="label.name" sortable="true" /> 
    <display:column class="alignLeft" property="permValue" titleKey="label.value" sortable="true" /> 
    <display:column class="alignLeft" property="applicationName" titleKey="label.appname" sortable="true" /> 
</display:table> 

Так что идея была бы, на странице обновления, чтобы установить «выбранный атрибут» чекбокса на основе какое-либо свойство входных данных «permissionList», которые я буду устанавливать в соответствии с тем, какие разрешения уже были выбраны для обновленной UserGroup.

Надеюсь, это было достаточно ясно для рок-н-ролла.

Заранее спасибо за любые идеи :)

EDIT - Я извиняюсь, я считаю, что способ предварительного выбора входного Флажок элемент должен содержать атрибут «проверено», я думал, что он был выбран = «выбрано» или что-то типа того.

ответ

1

Это, как я ее решил - я ставлю атрибут в ListObject, чтобы установить, если она была выбрана или нет, и предварительно установить эти значения в действии перед отображением списка разрешений:

  <display:table class="dataTable" defaultsort="1" name="userGroupForm.permissionList" id="tbldata" requestURI="/gotoUpdateUserGroup.do" pagesize="100"> 
       <display:setProperty name="paging.banner.onepage" value=""></display:setProperty> 
       <% if (isAdmin == true) { %> 
       <display:column class="alignCenter" title=""> 
       <input type="checkbox" name="permIDs" 
         value='<%=((Permission)pageContext.getAttribute("tbldata")).getPermissionCodeID() %>' 

         <%        
         String checked = ""; 
         boolean selected = ((Permission)pageContext.getAttribute("tbldata")).getIsSelected(); 

         if (selected == true) { checked = "checked"; } else { checked = ""; } 
         %> 

         <%= checked %> /> 
       </display:column> 
       <% } %> 
       <display:column class="alignLeft" property="permName" titleKey="label.name" sortable="true" /> 
       <display:column class="alignLeft" property="permValue" titleKey="label.value" sortable="true" /> 
       <display:column class="alignLeft" property="applicationName" titleKey="label.appname" sortable="true" /> 
      </display:table> 
Смежные вопросы