它看起来不像ace:datatable组件具有selectall / deselectall功能......除非你直接移动+点击表格。
我不想执行ajax提交并修改RowStateMap,因为:
a)在提交表单之前,我宁愿不做任何提交 b)无论可见性如何,RowStateMap.setAllSelected()都会选择表中的所有行。
有什么想法吗?
也许这会有所帮助。 icefaces的datatable.js文件有一个方法:
ice.ace.DataTable.prototype.doMultiRowSelectionEvent = function (lastIndex, current)
我尝试直接运行:
<h:commandButton value="Select All"
onclick="ice.ace.DataTable.prototype.doMultiRowSelectionEvent(0,
ice.ace.jq('.ui-datatable-data').children().last()); return false;"/>
但这似乎不起作用。
答案 0 :(得分:0)
所以我创建了一个函数“doSelectAllRows”,它是“doMultiRowSelectionEvent”的副本,但有以下更改:
ice.ace.DataTable.prototype.doSelectAllRows = function () {
var self = this,
tbody = ice.ace.jq(this.jqId).find('.ui-datatable-data'),
elemRange = tbody.children(),
deselectedId, firstRowSelected;
// Sync State //
self.readSelections();