jqGrid, как я могу скрыть подсетку, если она пуста?

Как я могу скрыть подсетку, если она пуста? Я попробовал это решение и это, но не повезло.


person VaL    schedule 22.12.2011    source источник


Ответы (2)


Посмотрите старый ответ. Вроде как раз то, что вам нужно.

person Oleg    schedule 22.12.2011
comment
Было хорошее решение, но не совсем то, что мне нужно. В моем случае у меня есть строки, которые должны быть с подсеткой и должны быть без подсетки в одной таблице. Между ними различие только в том, что в одних данные представлены в подсетке, в других - нет. Link для демонстрации, если вы прокрутите вниз, вы увидите 4 строки, которые не должны быть с подсеткой - person VaL; 22.12.2011
comment
Кстати, я принимаю ваше решение для своей работы. Спасибо. Но все же жду ответа) - person VaL; 22.12.2011

На основе this и Ответ Олега Я решаю свою проблему. В моей таблице все строки развернуты, поэтому код для основной таблицы выглядит следующим образом:

gridComplete: function(){
   var table_name = 'table_18';
   var myGrid = $('#'+table_name);
   var rowIds = myGrid.getDataIDs();
   $.each(rowIds, function (index, rowId){
          myGrid.expandSubGridRow(rowId);
   });

   var subGridCells = $("td.sgexpanded",myGrid[0]);
   $.each(subGridCells,function(i,value){
          $(value).unbind('click').html('');
   });
}

В этом коде я удалил действие щелчка для вложенных сеток развертывания / свертывания. Так что они всегда открыты и нет возможности их свернуть.

На основе этого i удалить пустые подсетки.

loadComplete: function(){//in subgrid 
        var table_value = $('#'+subgrid_table_id).getGridParam('records');
        if(table_value === 0){
            $('#'+subgrid_id).parent().parent().remove();
        }
}

Возможно, существует более простое и элегантное решение, но для меня оно работает так, как я ожидал.

person VaL    schedule 23.12.2011