2012-07-19 15 views
7

proste pytanie trudno znaleźć odpowiedź:jqGrid: Jak korzystać multiselect na różnych stronach

Gdy próbuję wybrać wiersz programowy, używam to:

$('#grid').jqGrid('setSelection', rowId); 

Problemem jest to, że wybiera tylko wiersze na bieżącej widocznej stronie. Jeśli rowId znajduje się na innej stronie, nie zostanie wybrane.

Więcej informacji: Moim celem jest wybór wielu wierszy (rozłożonych na wielu stronach) podczas pierwszego ładowania strony.

Dzięki Rafael

PS: Ten facet ma ten sam problem. Nie ma jeszcze odpowiedzi: jqgrid multiselect only selects rows on the current page, if paging is enabled. How to make it select rows across pages?

Odpowiedz

8

Dobrze, jqGrid wybierze tylko wiersze na bieżącej stronie. Aby wybrać inne wiersze, musisz zachować listę wybranych identyfikatorów i ręcznie je wybrać.

Do tego trzeba dodać kod do zdarzenia loadComplete zrobić, aby przeszukać bieżącą stronę i wybrać dowolny z tych wierszy:

var ids = grid.jqGrid('getDataIDs'); 
for (var i = 0; i < ids.length; i++){ 
    if (selected[ids[i]] === true){ 
     grid.setSelection(ids[i], false); 
    } 
} 

trzeba także dodać kod do onSelectRow i onSelectAll wydarzeń, aby dostosować zawartość selected, gdy użytkownik wybiera/odznacza wiersze:

onSelectRow: function(rowid, status){ 
    selected[rowid] = status; 
    setSelectedDeviceCount(); 
}, 

onSelectAll: function(rowids, status){ 
    for (var i = 0; i < rowids.length; i++){ 
     selected[rowids[i]] = status; 
    } 
} 

Czy to pomaga?

+0

Wielkie dzięki! Niestety kod nie może być używany w ten sposób (moja wina, nie twoja!), Ale ogólny pomysł sprawił, że to naprawiłem! Dzięki! –

Powiązane problemy