在DataTable换页的时候绑定一个事件Primefaces 2.2
问题:
现在项目里有个需求就是希望当datatable(Primefaces)换页的时候触发一个event.
解决方案:
定义这个datatable的widgetVar为:dataTableVar。然后添加如下一段JS。
1 dataTableVar.getPaginator().on( 'pageChange', function () { alert('paging'); } );
解决过程:
本来,是想通过给datatable中所有class带有ui-paginator的a标签bind一个click事件。但是,当这个datatable的每次都换页的时候都必须要重新执行这块JS。这必然存在效率问题,并且稳定性很差(因为有的时候就是bind不上去)。
1 function bindClickToPagingButton(id) { 2 var dataTableId = PrimeFaces.escapeClientId(id); 3 jQuery(dataTableId).ready(function() { 4 jQuery(" a[class*='ui-paginator']").each(function() { 5 jQuery(this).unbind(); 6 jQuery(this).bind("click", function() { 7 alert('click'); 8 }); 9 }); 10 11 }); 12 }
所以,我决定要换种方式,然后通过查看Primfaces2.2 的datatable JS发现它的paginator组件用的YUI的paginator widget。当换页的时候会触发一个pageChange的事件。所以问题就迎刃而解了。
深入一点,往往可以使问题更简单,学到的也更多。
浙公网安备 33010602011771号