Как пользователь может переключать номера строк в jqgrid - PullRequest
0 голосов
/ 18 марта 2012

Использование ответа из Динамически установить для чисел в false значение jqgrid Я создал кнопку переключения номеров строк.Первоначально номера строк не отображаются.Нажатие кнопки игнорируется, столбец с номерами строк не добавляется.Как заставить кнопку добавить столбец с номером строки?Или есть возможность добавить опцию для выбора столбцов для переключения столбцов с номерами строк?Это было бы лучше, дополнительная кнопка не требуется.

 var rownumbers=  isColState ? myColumnsState.rownumbers : false;
 $("#grid_toppager_left table.navtable tbody tr").append(
        '<td class="ui-pg-button ui-corner-all">' +
            '<div class="ui-pg-div my-nav-checkbox">' +
            '<input tabindex="-1" type="checkbox" id="RowNumbers" ' + (rownumbers ? 'checked ' : '')+'/>' +
            '<label title="Toggle row numbers"' +
            ' for="RowNumbers">Toggle row numbers</label></div></td>'
    );
 $("#RowNumbers").button({
        text: false,
        icons: {primary: "ui-icon-grip-dotted-vertical"}
    }).click(function () {
        rownumbers = !rownumbers;
        if (rownumbers ) {
          $grid.jqGrid('showCol', 'rn'); 
         } else { 
          $grid.jqGrid('hideCol', 'rn'); 
          }
       saveWindowState();
    });

Обновление

jqgrid также содержит столбцы множественного выбора и _actions.в loadcomplete новая строка добавляется в конец сетки с помощью

var newRowData = { Dokumnr: 123,
    Reanr: $grid[0].rows.length + 1
},
newRowId = '_empty' + $.jgrid.randId();
$grid.jqGrid('addRowData', newRowId, newRowData);

Если номера строк включаются в первый раз после загрузки, в столбце круглых чисел появляется флажок множественного выбора в добавленной строке:

checkbox in row number column

Как это исправить?

1 Ответ

1 голос
/ 18 марта 2012

Вы должны включить rownumbers: true любым способом, чтобы создать номера строк.Если вы хотите, чтобы номера строк изначально не отображались, вы должны позвонить $grid.jqGrid('hideCol', 'rn'); после создания сетки.Вы также можете установить для rownumbers значение false в отношении $grid.jqGrid('setGridParam', {rownumbers: false});, но я не думаю, что это действительно необходимо.

После этого вы можете использовать кнопку $("#RowNumbers"), как вы изначально хотели.Возможно, вы можете установить для параметра rownumbers значение true или false вместе с showCol и hideCol и использовать параметр rownumbers вместо переменной rownumbers.

ОБНОВЛЕНО : текущий код addRowData просто проверить, является ли rownumbers опция jqGrid true:

var ni = t.p.rownumbers===true ? 1 :0;
    gi = t.p.multiselect ===true ? 1 :0;
    si = t.p.subGrid===true ? 1 :0;

Зависит от значения, которое он вычисляет положение данных:

prp = t.formatCol(ni,1,'', null, rowid, true);

Так что я должен исправить свой ответ.Вы не должны изменять значение опции rownumbers.Он должен оставаться всегда true, даже если соответствующий столбец будет скрыт.

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