#java #primefaces
#java #первичные
Вопрос:
Я использую таблицу данных Prime faces 3.5 с режимом выбора как single, в таблице данных отображается список доменов в группе редактирования, в то время как страница, загружающая основной домен, должна быть выбрана в таблице данных, эта настройка выполняется через вспомогательный компонент. Но проблема в том, что выбор не работает должным образом. Например, если я нажимаю редактировать группу в первый раз, когда выбирается основной выбор, затем закрываю диалоговое окно, а затем снова редактирую ту же группу, выбор строки не выбирается.
<p:dataTable id="dialog_DomainList"
value="#{domainGrpDetailBean.domainAliasVOModel}" var="v"
rowKey="#{v.domainId}" selection="#{domainGrpDetailBean.selectedPrimaryDomain}"
scrollable="#{domainGrpDetailBean.domainScrollFlag}"
scrollRows="5" scrollHeight="70" editable="true"
editingRow="#{v.newAdded}" resizableColumns="true">
<p:ajax event="rowEdit"
listener="#{domainGrpDetailBean.onEditDomainAlias}"
oncomplete="updateDomainAliasTable();"
update=":group_DialogForm:msgs" />
<p:column headerText="#{msg['domaingroup.datatabel.header.ids']}"
width="10%">
<h:outputText value="#{v.domainId}"
rendered="#{v.domainId gt -1}" />
</p:column>
<p:column
headerText="#{msg['domaingroup.datatabel.header.primary']}"
selectionMode="single" width="10%">
</p:column>
<p:column
headerText="#{msg['domaingroup.datatabel.header.domainstatus']}"
width="20%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{v.statusString}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu value="#{v.status}"
style="width:98%; text-align:left">
<f:selectItems
value="#{domainGrpDetailBean.domainStatusList}"
var="status" itemLabel="#{status}" itemValue="#{status}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
Как мне установить настройку выбранной строки через вспомогательный компонент?
Ответ №1:
Вы можете принудительно выполнить это с помощью кода, подобного этому:
<p:dataTable ...>
<p:ajax event="rowSelectCheckbox" process="@this"/>
<p:ajax event="rowUnselectCheckbox" process="@this"/>