Одиночная настройка выбора строки с данными через вспомогательный компонент не работает должным образом

#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"/>