我正在使用primefaces4.0,tomcat6作为我的应用程序。 我在一个带有提交按钮的对话框中有一个带复选框的表。 如果没有选中复选框,则禁用该按钮。 选择复选框后,我必须启用提交按钮。 但是在选择之后,提交按钮才会启用。
这是我的代码
<p:dataTable value="#{product.unsubscribedLicenseTypes}"
selection="#{product.selectedLicense}"
widgetVar="licenseTable" paginatorPosition="bottom"
rowsPerPageTemplate="5,10,15" var="licType" paginator="true"
currentPageReportTemplate="Showing {startRecord}-{endRecord} out of {totalRecords}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
pageLinks="0" rows="5" rowKey="#{licType.id}">
<p:ajax event="toggleSelect" update="@(#submitBtn)" />
<p:ajax event="rowSelect" update="@(#submitBtn)" onstart="alert('row select')" onerror="alert('err')" onsuccess="alert('Success')"/>
<p:ajax event="rowUnselect" update="@(#submitBtn)" />
<p:ajax event="rowSelectCheckbox" update="@(#submitBtn)" />
<p:ajax event="rowUnselectCheckbox" update="@(#submitBtn)" />
</p:dataTable>
<p:commandButton value="#{msg['button.submit']}" id="submitBtn"
styleClass="submitFormButton" oncomplete="alert('hi');dlg.hide()"
action="#{product.addLicenseTypeToProduct}"
disabled="#{fn:length(product.selectedLicense) eq 0}"/>
答案 0 :(得分:0)
update="@(#submitBtn)" update="submitBtn"
像我提到的那样更改你的更新..
答案 1 :(得分:0)
首先看看生成的代码在浏览器中的样子。我打赌你的按钮ID看起来像j_idt62:submitBtn
,这是因为你的<h:form>
没有id。其他一些<h:form>
是一个命名容器,它会将自己的ID添加到其子组件中,因此如果您提供的表单ID如此<h:form id="form">
,则您的按钮看起来像<button id="form:submitBtn" >
。 Vicky提到使用按钮的相对路径,如果按钮和调用更新的组件可以找到对方,这将会起作用,因为它们不能使用按钮的绝对路径(假设您选择了表单)。
<p:ajax update=":form:submitBtn" />
答案 2 :(得分:0)
添加此
<p:commandButton widgetVar="var" ... />
和
... update="@widgetVar(var)"