gpt4 book ai didi

jsf - Primefaces 数据表 RowSelect 事件

转载 作者:行者123 更新时间:2023-12-02 09:37:14 25 4
gpt4 key购买 nike

我的 xhtml 中有以下内容

                <h:form id="clientTableForm" prependId="false">
<p:dataTable id="clientTable" widgetVar="clientTableVar"
var="client" value="#{resendEmailController.lazyDataModel}"
paginator="true" rows="15"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CurrentPageReport}"
rowsPerPageTemplate="5,10,15,20,25,50,75,100"
paginatorPosition="bottom" pageLinks="5" lazy="true"
sortBy="#{client.cclnCode}" sortOrder="ascending"
selection="#{resendEmailController.selectedClient}"
selectionMode="single" filterDelay="500" scrollable="true"
scrollHeight="380">

<p:ajax event="rowSelect"
listener="#{resendEmailController.changeClient}"
update="_accountTableForm_accountTable" />



<p:column id="cclnCodeColumn" headerText="Client Code"
style="width:25%;" sortBy="#{client.cclnCode}"
filterBy="#{client.cclnCode}" filterMaxLength="10">
<h:outputText value="#{client.cclnCode}"
converter="#{trimStringConverter}" />
</p:column>

<p:column id="cclnNamenColumn" headerText="Client Name"
style="width:75%" sortBy="#{client.cclnName}"
filterBy="#{client.cclnName}" filterMaxLength="50">
<h:outputText value="#{client.cclnName}"
converter="#{trimStringConverter}" />
</p:column>
</p:dataTable>
</h:form>
</p:layoutUnit>

<script type="text/javascript">

$(document).ready(function()
{
autoSelectClient();
});


function autoSelectClient()
{
if (clientTableVar.isEmpty() == false)
{
clientTableVar.selectRow(1, false);
}
}

</script>

我的支持 bean 中有这个

    public void changeClient(SelectEvent selectEvent)
{
ResendEmailClient client = (ResendEmailClient) selectEvent.getObject();

selectedClient = client;

String cclnCode = client.getCclnCode();

selectedAccounts = getService().listAccounts(cclnCode);
}

我只是想问为什么当“autoSelectClient();”执行时,支持bean中的“selectedClient”变量为NULL。但是,如果我单击这些行,“selectedClient”就已经设置了。

正如您在我的支持 bean 中看到的那样,我可以通过获取 SelectEvent 内的对象来获取我想要的值,但我只想知道造成差异的原因是什么。

此外,如果可能的话,还可以建议如何复制模拟第二种情况,以便在调用“changeClient()”之前已经设置“selectedClient”。

使用JSF 2.1PrimeFaces 3.5莫贾拉2.1

最佳答案

尝试在 ajax 选择事件过程中发送数据表 ID,如下所示:

<p:ajax event="rowSelect" listener="#{resendEmailController.changeClient}" update="_accountTableForm_accountTable" process="clientTable" />

因为当您调用事件时,您选择的真实情况尚未发送。

关于jsf - Primefaces 数据表 RowSelect 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com