Jsf 有条件地将AJAX事件应用于数据表行
我对JSF和Primefaces比较陌生,但我的任务是尝试减少遗留代码库中的AJAX请求量。这个问题来自一个特定的示例,其中我们有一个目录,列出了文件和文件夹的UIJsf 有条件地将AJAX事件应用于数据表行,jsf,primefaces,Jsf,Primefaces,我对JSF和Primefaces比较陌生,但我的任务是尝试减少遗留代码库中的AJAX请求量。这个问题来自一个特定的示例,其中我们有一个目录,列出了文件和文件夹的UI <p:dataTable id="directoryTable" var="directoryObject" value="#{fileCabinet.folderContents}" resizableColumns="true" scrollable="true" rowKey="#{directoryO
<p:dataTable id="directoryTable" var="directoryObject" value="#{fileCabinet.folderContents}"
resizableColumns="true" scrollable="true"
rowKey="#{directoryObject}" selectionMode="single"
selection="#{fileCabinet.currentObject}" dblClickSelect="true"
sortMode="multiple" emptyMessage="This folder is empty"
sortFunction="#{dataTableUtil.sort}">
<c:if test="#{directoryObject.objectType eq 'DIRECTORY'}">
<p:ajax event="rowSelect" listener="#{fileCabinet.onRowSelect}"
update=":form:directoryTable :menu" />
</c:if>
为了简洁起见,我排除了datatable的其余部分。在这段代码中,即使“test”表达式在随后html元素的“rendered”属性中的计算结果非常好,也不会附加ajax事件。不幸的是,p:ajax不支持“呈现”条件
我还尝试了c:choose/c:when,以获得相同的结果
这感觉应该很容易做到!我可能缺少一些简单的语法来实现这一点
谢谢 我通过使用
的disabled
属性,将我的条件作为值(当然是否定的),解决了这个问题
关于
失败的原因,请直奔本问答:关于性能问题,请不要忘记查看部分问题:
<p:ajax event="rowSelect"
listener="#{fileCabinet.onRowSelect}"
update=":form:directoryTable :menu"
disabled="#{directoryObject.objectType ne 'DIRECTORY'}" />