Отключить раскрытие подсетки для выбранных строк jqGrid - PullRequest
6 голосов
/ 28 мая 2010

Проблема: jqGrid с подсетями. Я хочу отключить функцию расширения / свертывания для некоторых строк основной сетки.

Ответы [ 4 ]

5 голосов
/ 15 сентября 2011

Я действительно нашел способ:

grid.jqGrid('setGridParam',{
                afterInsertRow: function(rowid, aData, rowelem) {

                    var rowData = grid.getRowData(rowid);
                    if(**Condition**){
                        $('tr#'+rowid, grid)
                         .children("td.sgcollapsed")
                         .html("")
                         .removeClass('ui-sgcollapsed sgcollapsed');
                    }
                }
            });

Была небольшая проблема. Код @Frank удалил значок, но событие «щелчка» все еще было запущено. Попытка отсоединить событие «click», похоже, не работает, возможно, потому, что оно присоединено позже (возможно, в gridComplete ). В любом случае, я решил, что событие click присоединяется с использованием одного из классов 'ui-sgcollapsed sgcollapsed', поэтому, если вы удалите их, событие не будет прикреплено.

Надеюсь, это поможет.

2 голосов
/ 22 июня 2010

Добавьте это в gridConfig

afterInsertRow: function(rowid, aData, rowelem) {
    // Remove the subgrid plus button except for rows that have exceptions
    if (CONDITION) {
        $('#' + rowid).children("td.sgcollapsed").unbind().html("");
    }
},
0 голосов
/ 19 ноября 2013

Если вы пытаетесь отключить или скрыть кнопку развертывания и разворачивания подсетей, используйте эту функцию при загрузке,

jQuery("#GridTeableID").jqGrid('hideCol', "subgrid");
0 голосов
/ 28 мая 2010

К сожалению, для этого нет API jqGrid. Вам придется подождать, пока сетка не будет создана, а затем, возможно из события loadComplete, вам нужно будет вручную зациклить все строки и отключить выбранные.

Если вы осмотрите элементы DOM, которые составляют сетку, вы, вероятно, сможете найти способ удалить / отключить расширитель для выбранных строк. Возможно, используя jQuery.remove .

...