Обратный вызов для когда jqGrid завершает перезагрузку? - PullRequest
2 голосов
/ 13 мая 2010

Я использую плагин jqGrid, и в какой-то момент мне нужно обновить сетку и настроить выбранную строку, чтобы она соответствовала записи, которую я показываю подробно в другом разделе страницы. У меня есть следующий код, но он не работает:

$("#AllActions").trigger("reloadGrid").setSelection(selectedRow);

Параметр selectedRow исходит из обработчика событий, который вызывается при изменении данных и необходимости обновления сетки.

Я почти уверен, что проблема в том, что сетка не загружается, когда устанавливается выбор, потому что, если я помещаю вызов alert () между вызовами trigger () и setSelection (), он работает.

Буду благодарен за любой совет.

[Редактировать] Похоже, setSelect jqGrid не работает после того, как reloadGrid связана, но не решена. [/ Edit]

Ответы [ 2 ]

5 голосов
/ 13 мая 2010

Прежде всего вы должны сохранить rowid старого выделения в переменной, затем вызвать $("#AllActions").trigger("reloadGrid") и внутри loadComplete выбора набора обработчиков событий относительно $("#AllActions").setSelection(rowid).

Не забудьте установить параметр scrollrows:true в jqGrid, чтобы быть уверенным, что выбранная строка будет видимой.

1 голос
/ 10 октября 2011

Попробуйте, я сделал это, и это работает.

setTimeout("$('#grid').jqGrid('setSelection','"+id+"')", 1000); 

и, конечно, в конфиге главной сетки .. вы можете использовать что-то вроде этого

onSelectRow: function(ids) { 
  if(ids == null) { 
    ids=0; 
    if($("#grid-detail").jqGrid('getGridParam','records') >0 ) { 
        $("#grid-detail").jqGrid('setGridParam',{url:"server.php?&grid=1&oper=get_records&id=&id="+ids,page:1}); 
        $("#grid-detail").jqGrid().trigger('reloadGrid'); 

    } 
  } else { 
        var arr = jQuery("#list-maestro").getRowData( ids );
        var id = arr.id; 
        $("#grid-detail").jqGrid('setGridParam',{url:"server.php?&grid=1&oper=get_records&id="+id,page:1}); 
        $("#grid-detail").jqGrid().trigger('reloadGrid'); 
  }
}
...