看起来不像ace:datatable组件有选择/取消选择的功能…除非你直接在表上shift+click。
我不想执行ajax提交和修改RowStateMap,因为:
a)我宁愿在表单提交之前不做任何提交b) RowStateMap.setAllSelected()选择表中的所有行,不管是否可见。
任何想法?
也许这能帮上忙。在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;"/>
所以我创建了一个函数"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();