开发者

Flexigrid: selection of rows to survive refresh

开发者 https://www.devze.com 2023-01-23 09:03 出处:网络
I am using flexigrid in a project and I would like to be able to keep the selected rows after the grid is refreshing. I asked the same question on the flexigrid discussion board and I got this answer:

I am using flexigrid in a project and I would like to be able to keep the selected rows after the grid is refreshing. I asked the same question on the flexigrid discussion board and I got this answer:

Add a click handler, save the id if the row id of the row selected. On refresh completion, select the row again (if still present)

Not sure how to proceed on this, I don't even know how a function will look like, so that's why I don't have a开发者_如何学Gony code to start with.

If someone could point me in the right direction will be greatly appreciated.

Thanks,

Cristian.


Flexigrid adds a class called trSelected to selected rows, so whenever a click event happens on the grid you could just look for all the selected rows and save them in some way. Below is just a quick example of what you could do:

var selectedRows = new Array();

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

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


I have done small code to keep multi-selection between pagination and also during refresh.

    $("#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");
            }
        });
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消