jqgrid Скрыть столбец группировки - проблема выравнивания в браузере IE - PullRequest
2 голосов
/ 10 мая 2011

Хай, я столкнулся с проблемой выравнивания в браузере IE.Сценарий:1. сделать групповой столбец скрытым (groupColumnShow: [false])2. сделать любой столбец скрытым (скрыто: правда)Снимок экрана прилагается. enter image description here

[Скриншот] http://uatdemo.sify.net:4080/jqgrid.png

Пожалуйста, помогите решить.

jQuery("#list48").jqGrid({
    data: mydata,
    datatype: "local",
    height: 'auto',
    rowNum: 30,
    rowList: [10,20,30],
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
    colModel:[
        {name:'id',index:'id', width:60, sorttype:"int"},
        {name:'invdate',index:'invdate', width:90, sorttype:"date",
             formatter:"date"},
        {name:'name',index:'name', width:100, editable:true},
        {name:'amount',index:'amount', width:80, align:"right",sorttype:"float",
             formatter:"number", editable:true},
        {name:'tax',index:'tax', width:80, align:"right",sorttype:"float",
             editable:true},        
        {name:'total',index:'total', width:80,align:"right",sorttype:"float"},      
        {name:'note',index:'note', width:150, sortable:false}       
    ],
    pager: "#plist48",
    viewrecords: true,
    sortname: 'name',
    grouping:true,
    groupingView : {
        groupField : ['name'],
        groupColumnShow : [false]
    },
    caption: "Hide Grouping Column"
});

Ответы [ 5 ]

1 голос
/ 12 сентября 2011

У меня была точно такая же проблема. Решение, которое я нашел, выглядит следующим образом:

  1. Поместить все скрытые поля в конец (в colModel)
  2. Определите эту функцию:

    function resolveAlignmentJqgridBug() {  
      /*  
      Without the below line, the "jqgfirstrow" has child <TD> for every hidden column.  
      These <TD>s have non zero width and with "display: none".  
      Setting the style of these <TD>s to "width: '0px', display: 'block'" resolves the problem. */
      jQuery(".jqgfirstrow").find(":hidden").css({width: '0px', display: 'block'});  
    }
    
  3. Вызывайте эту функцию после определения сетки и каждый раз, когда я меняю группировку (у меня меняется динамическая группировка):

    jQuery("#list").jqGrid({
    ...
    datatype: "json",  
        colNames:['not hidden field','hidden field'],  
        colModel:[  
        ...  
        {name:'typeId', hidden:false},  
            {name:'url', hidden:true}  
        ],  
        autowidth: true,   
        shrinkToFit:true,  
    ...  
    grouping: true,  
        groupingView : {  
        groupField : ['statusDesc'],  
        groupColumnShow : [true],  
        groupText : ['<b>{0}</b> ({1})'],  
        groupCollapse : false,  
        groupOrder: ['asc'],  
        groupSummary : [false],  
        groupDataSorted : false   
         },  
    ...  
    });  
    
    resolveAlignmentJqgridBug();
    }  
    
1 голос
/ 12 октября 2011

Эту ошибку можно устранить, добавив директиву сверху HTML-кода:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1 голос
/ 10 мая 2011

Я не могу воспроизвести проблему, которую вы описываете. Вы можете сравнить ваш код с демо и попытаться найти вашу ошибку.

0 голосов
/ 31 июля 2015

Просто вызов при завершении загрузки события JQGrid в конце

loadComplete: function () {
  jQuery(".jqgfirstrow").find(":hidden").css("cssText", "width:0px!important;height:0px!important;display:none!important");        
}
0 голосов
/ 12 февраля 2014

Попробуйте это:

jQuery("#list48").jqGrid('hideCol', "yourColumnName");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...