Flexigrid:选择行以进行刷新

时间:2010-10-31 16:26:02

标签: javascript jquery flexigrid

我在项目中使用flexigrid,我希望能够在网格刷新后保留选定的行。我在flexigrid讨论板上问了同样的问题,我得到了这个答案:

  

添加点击处理程序,如果所选行的行ID,则保存id。刷新完成后,再次选择该行(如果仍然存在)

不确定如何继续这个,我甚至不知道函数的样子,所以这就是为什么我没有任何代码可以开始。

如果有人能指出我正确的方向,将不胜感激。

谢谢,

的Cristian。

2 个答案:

答案 0 :(得分:2)

Flexigrid为选定的行添加了一个名为trSelected的类,因此每当网格上发生单击事件时,您只需查找所有选定的行并以某种方式保存它们。以下是您可以做的快速示例:

var selectedRows = new Array();

$('#myGrid').click(function() {
    selectedRows = new Array();

    $(this).find('tr.trSelected').each(function(i, selectedRow) {
        selectedRows.push($(selectedRow));        
    });
});

答案 1 :(得分:1)

我已经完成了一些小代码,可以在分页和刷新期间保持多选。

    $("#searchPhonoList").flexigrid($.extend({}, flexigridAttrs, {
        url: './rest/phono/search',
        preProcess: formatSearchPhonoResults,
        onSuccess: successSearchPhono,
        onSubmit: submit,
        method: 'GET',
        dataType: 'json',
        colModel : [
            {display: 'titre', name: 'titre_brut', width : 240,  sortable : true, align: 'left'},
            {display: 'version', name: 'version_brut', width : 60,  sortable : true, align: 'left'}
        ],
        height: "auto",
        sortname: "score",
        sortorder: "desc",
        showTableToggleBtn: false,
        showToggleBtn: false,
        singleSelect: false,
        onToggleCol: false,
        usepager: true, 
        title: "Liste des candidats",
        resizable: true,
        rp:20,
        useRp: true
    }));  

    var searchPhonoListSelection = new Array();

    $('#searchPhonoList').click(function(event){

        $(' tbody tr', this).each( function(){
            var id = $(this).attr('id').substr(3);
            if ( searchPhonoListSelection.indexOf(id) != -1 ) {
                searchPhonoListSelection.splice(searchPhonoListSelection.indexOf(id), 1);
            }
        });

        $('.trSelected', this).each( function(){
            var id = $(this).attr('id').substr(3);
            if ( searchPhonoListSelection.indexOf(id) == -1  ) {
                searchPhonoListSelection.push(id);
            }
        });
    });


    function successSearchPhono() {
        $("#searchPhonoList tbody tr").each( function() {
            var id = $(this).attr('id').substr(3);
            if ( searchPhonoListSelection.indexOf(id) != -1 ) {
                $(this).addClass("trSelected");
            }
        });
    }