如何在icefaces ace:datatable中选择所有可见行?

时间:2015-06-04 14:15:13

标签: jsf datatable icefaces

它看起来不像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;"/>                                

但这似乎不起作用。

1 个答案:

答案 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();