我在xhtml中有以下内容:
我想问一下,为什么在执行"autoSelectClient()"时,后端bean中的"selectedClient"变量是NULL,但如果我点击行,"selectedClient"已经设置了。
如您在后端bean中所见,我可以通过获取SelectEvent内部的对象来获取所需的值,但我只想知道差异的原因。
此外,如果可能的话,是否有人还可以建议如何复制模拟第二种情况,以便在调用"changeClient()"之前就已经设置了"selectedClient"。
使用JSF 2.1、PrimeFaces 3.5和Mojarra 2.1。
我在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.1、PrimeFaces 3.5和Mojarra 2.1。