Stellen Sie sicher, dass die Mehrfachauswahl von jqGrid nach Paginierung, Suche in der Symbolleiste oder Filter erhalten bleibt

ich habe dasjqGrid. Folgendes ist mein gewünschtes Verhalten:

Beim ausgewählten Element bleibt die Auswahl bestehen (und wird dem Benutzer als solche angezeigt), nachdem Seiten geändert oder eine Suche durchgeführt wurde (Symbolleiste oder Filter).

Wenn die Schaltfläche Alle auswählen ausgewählt ist und keine Elemente auf der aktuellen Seite ausgewählt sind, werden alle ausgewählt. Wenn bereits ein Element ausgewählt ist, wird die gesamte Liste gelöscht, ob auf der Seite oder nicht.

Wenn Sie auf die Schaltfläche Rechnungsdruck klicken, wird entweder die Liste der IDs verwendet, die erstellt wurde, oder es wird eine Liste aller ausgewählten IDs erstellt, unabhängig davon, ob diese in der aktuellen Anzeige angezeigt werden oder nicht.

Es wäre akzeptabel, wenn der Filter nicht unterstützt, aber bevorzugt würde.

Ich weiß zwar wenig über js, aber hier sind einige Dinge, die ich mit gemischtem Erfolg ausprobiert habe:

DieseAntworten schlägt vor, onSelectRow und onSelectAll zu verwenden, konnte jedoch nicht implementiert werden.scheitern sehen

Diese sieht vielversprechend aus, behebt aber nur die Paginierungssache. Die Nummer 1 sieht also nach einer bevorzugten Route aus.Pastebin für Frage # 2

P.S. zurück zu dem wissen wenig über js. In meinem Projekt funktioniert der Alert und die nicht angezeigte Funktionalität der Funktion select_ids, nicht sicher, warum der Alert nicht in der jsfiddle angezeigt wird. so sorry im voraus, dass es reparaturbedürftig ist, brownie deutet jedoch auf den gegabelten fix hin.

grid.jqGrid({
            datatype: "local",
            data: mydata,
            colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
            colModel:[
                {name:'id',index:'id', key: true, width:70, sorttype:"int"},
                {name:'invdate',index:'invdate', width:90, sorttype:"date"},
                {name:'name',index:'name', width:100},
                {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
                {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},
                {name:'total',index:'total', width:80,align:"right",sorttype:"float"},
                {name:'note',index:'note', width:150, sortable:false}
            ],
            search:true,
            pager:'#pager',
            jsonReader: {cell:""},
            rowNum: 10,
            rowList: [5, 10, 20, 50],
            sortname: 'id',
            sortorder: 'asc',
            viewrecords: true,
            multiSort: true, 
            multiselect: true, 

            height: "100%",
            caption: "Invoice Print"
        });
        grid.jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:true,refresh:true},
                    {},{},{},{multipleSearch:true, multipleGroup:true, showQuery: true});
        grid.jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false, defaultSearch:"cn"});

Antworten auf die Frage(1)

Ihre Antwort auf die Frage