我将<p:dataTable>
定位为<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>
?
答案 0 :(得分:0)
当在数据表列中自定义<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>