Добавить флажки в jqGrid на основе значения, полученного через json - PullRequest
1 голос
/ 30 июня 2011

У меня есть json, который возвращает некоторые строки как "true" или "false". Теперь, на основе вышеуказанных значений, состояние флажка должно вести себя.

Для примера: если для этого извлекается trueстолбец, состояние флажка должно быть включено.Если для этого столбца получено значение false, состояние флажка должно быть отключено.

Можем ли мы выполнить эту манипуляцию в jQuery-jqGrid?Может кто-нибудь помочь мне с примером кода?

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Если я правильно понимаю, вам нужно просто включить formatter: 'checkbox' свойство в определение соответствующих столбцов colModel.

Кстати, если вы используете formatter:'checkbox' вход может быть «0» или «1» вместо «false» и «true».Если в данных JSON много логических данных, использование «0» и «1» может уменьшить размер передаваемых данных.formatter:'checkbox' интерпретирует (без учета регистра) данные «ложь», «0», «нет» «выкл» как проверенные и все другие непустые значения как непроверенные.

2 голосов
/ 30 июня 2011

Посмотрите на эту скрипку .

Во время загрузкиЗавершено:

loadComplete: function(data) {
    if (data.rows.length > 0) {
        for (var i = 0; i < data.rows.length; i++) {
            if (data.rows[i].columnToCheck == true) {
                jQuery("#list47").setSelection(data.rows[i].id, true);
            }
        }
    }
},
0 голосов
/ 18 января 2014

Я наконец получил этот код для своих флажков jqGrid (функция получила данные сетки json):

     success: function(gridData) {
            lastVhostSel = -1;
            reloadGrid("#vhostTable", gridData);
            var vhostTable = $("#vhostTable");
            var listIds = vhostTable.getDataIDs();
            for (var i = 0; i < listIds.length; i++) {
                var rowId = listIds[i];
                rowData=vhostTable.getRowData(rowId);
                var chbx = vhostTable.find('#'+rowId+' input[type=checkbox]');
                var data = gridData[rowId-1];  // get json row

                //  change checkbox, based on json:
                chbx.prop('checked',data.isVpn);
                chbx.prop('disabled',(!data.isVpn || !data.isIp));

                // add change event handler
                chbx.change(function(){
                    lastVhostSel = -1;
                    vhostTable.setSelection(this.parentNode.parentNode.id, true);
                });
            }

            function reloadGrid(gridId, gridData){
                $(gridId).jqGrid('clearGridData');
                $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...