我的目标是一个被<pe:blockUI>阻止的<pe:blockUI>,如下所示。
<pe:blockUI target="dataTable" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<p:commandLink id="link" value="Link" onstart="PF('blockUIWidget').block()" oncomplete="PF('blockUIWidget').unblock()"/>
</p:column>
</p:dataTable>当然,这是很好的功能。
我不需要针对整个数据表,而只需要指向表中的链接。下面的尝试失败了。
<pe:blockUI target="dataTable:link" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>在这里,target属性的值已从dataTable更改为dataTable:link,以使其引用链接(数据表保持不变)。
在这种情况下,它仍然是无声的。浏览器控制台上没有出现错误,也没有出现任何异常。
<p:blockUI>也会发生同样的情况。下面的尝试很好地发挥了它的作用。
<p:blockUI block="dataTable" widgetVar="blockUI"/>
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<p:commandLink id="link" value="Link" onstart="PF('blockUI').show()" oncomplete="PF('blockUI').hide()"/>
</p:column>
</p:dataTable>但是,让<p:blockUI>指向表中的<p:commandLink> (如下所示)并不起作用。
<p:blockUI block="dataTable:link" widgetVar="blockUI"/>同样,没有错误,没有例外。
有什么意义?封装迭代组件的组件可以不被<p:blockUI>或<pe:blockUI>针对吗?
发布于 2014-07-31 19:00:59
当在数据表列/s中定义<p/pe:blockUI>时,这样做很好,如下所示。
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<!--Using PrimeFaces Extensions <pe:blockUI>-->
<pe:blockUI target="link" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>
<p:commandLink id="link" value="Link" onstart="PF('blockUIWidget').block()" oncomplete="PF('blockUIWidget').unblock()"/>
</p:column>
<p:column>
<!--Using PrimeFaces <p:blockUI>-->
<p:blockUI block="link1" widgetVar="blockLink1UI" />
<p:commandLink id="link1" value="Link1" onstart="PF('blockLink1UI').show()" oncomplete="PF('blockLink1UI').hide()"/>
</p:column>
<p:column>
<!--Using PrimeFaces <p:blockUI>-->
<p:blockUI block="link2" widgetVar="blockLink2UI" />
<p:commandLink id="link2" value="Link2" onstart="PF('blockLink2UI').show()" oncomplete="PF('blockLink2UI').hide()"/>
</p:column>
</p:dataTable>https://stackoverflow.com/questions/25057934
复制相似问题