我想从命令链接中的数据表标记中引用下面表单中的组件 id=contractIdInputText。我想在渲染属性中使用它的 id 而不是@all。我在下面使用@all 只是因为我无法引用 id。数据表位于标签之外和之上。
<h:form id="contracts">
<h:outputScript library="js" name="common.js" target="head"/>
<h:panelGrid columns="3" columnClasses="rightalign,leftalign,leftalign">
<h:outputLabel for="contractIdInputText" rendered="true" value="Contract Nooo.: " />
<h:inputText id="contractIdInputText" required="true" value="#contractManager.newContractId}" />
</form>
这是数据表的命令链接:
<h:commandLink id="editLink" value="#{bundle.ListUnitEditLink}"
action="#{contractManager.updateContract}">
<f:ajax onevent="disablePK" render="@all" />
</h:commandLink>
链接中 ajax 的全部目的是在我单击命令链接并填充表单时禁用表单组件。我还注意到,就像使用 @all 做我想要的一样(在禁用 inputText 的情况下填充表单),这导致我需要在数据表中的命令链接上单击命令链接两次,以便用另一个填充表单物品。为什么会这样?