jqGrid Установить выбранные строки - PullRequest
8 голосов
/ 29 ноября 2011

У меня есть jqgrid с multiselect true, и я хочу установить некоторые строки. (Я знаю идентификаторы строк.) Как я могу это сделать?

Я имею в виду противоположность

$("#myTable").jqGrid('getGridParam', 'selarrrow');

как:

$("#myTable").jqGrid('setGridParam', 'selarrrow', rowArray);

Ответы [ 3 ]

9 голосов
/ 29 ноября 2011

Вы должны пройти через массив rowArray и вызвать метод setSelection для каждого идентификатора строки из rowArray:

var i, count, $grid = $("#myTable");
for (i = 0, count = rowArray.length; i < count; i += 1) {
    $grid.jqGrid('setSelection', rowArray[i], false);
}
5 голосов
/ 12 июля 2012
$.each(rowsToSelect, function(_, rowId) {
    $grid.setSelection(rowId, false);
});

Нет большой разницы. Просто показалось аккуратнее:)

2 голосов
/ 13 июня 2014

(Довольно удивительно, что даже сейчас, в 2014 году, jqGrid не сохраняет флажки при подкачке страниц ..)

Вот код, который мне нужно было использовать с jqGrid 4.4.5, чтобы установить флажки после перехода на новую страницу:

var idsOfSelectedRows = [];   //  list of RowIDs for rows which have been ticked

$("#tblContracts").jqGrid({
      ...   
      colModel: [
          { name: 'AddContract', width: 50, align: "center", editable: true, edittype: 'checkbox', editoptions: { value: "True:False" }, formatter: "checkbox", formatoptions: { disabled: false } },
          { name: "ContractName", search: true, width: 80, align: "center" }
      ],
      loadComplete: function () {
          for (i = 0; i < idsOfSelectedRows.length; i++) {
              $(this).setCell(idsOfSelectedRows[i], 'AddContract', true);
          }
      },

Во время разработки я поместил «alert» в цикл «for». Я обнаружил, что с помощью «setSelection» просто прошел через мой список RowID, выбрал строку (чтобы она стала подсвеченной), а затем перешел к следующему, выбрав этот вместо.

Это никогда не отметьте ни один из флажков.

Обратите внимание, что моя функция "setCell" включает name столбца jqGrid, где у меня есть флажок.

Если вы вырезали и вставили этот код, убедитесь, что вы изменили эту строку, чтобы отразить имя вашего столбца флажка jqGrid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...