0

我正在尝试将setlabeljqGrid 的方法与setGroupHeaders. 这没用。但是当我删除它时setGroupHeaderssetLabel方法有效,并且我能够动态更改我的列标题。有没有办法同时使用这两种方法?

添加代码片段

$("#aGrid").jqGrid({
    shrinkToFit: false,
    autowidth: true,
    height: 305,    
    colNames: ['Parameter','T0','T1','T2','T3'],
    colModel: [
        {name:"paramName",index:"paramName",width:115,sortable:false,frozen:true},
        {name:"t0",index:"t0",cellattr:myFormatter,hidden:false},
        {name:"t1",index:"t1",cellattr:myFormatter,hidden:false},
        {name:"t2",index:"t2",cellattr:myFormatter,hidden:false},
        {name:"t3",index:"t3",cellattr:myFormatter,hidden:false}
    ],
    viewrecords: true,
    gridview: true,
    sortable: false,
    caption: "A Grid" 
});

$("#aGrid").jqGrid('setGroupHeaders', {
    useColSpanStyle: true,                    
    groupHeaders: [
        {startColumnName:'t0',
         numberOfColumns:8,
         titleText:'10.152.141.142'}]
});

$.ajax({
    type : "get",
    url : url,
    dataType: "json",
    contentType: "application/json",
    success :  function(responseText){
        for(var i=0;i<=responseText.length;i++)
            {
            if(i === 0){
                var newColHeaders = responseText[i];
                $("#aGrid").jqGrid('setLabel', "t0",newColHeaders['t0']);
                $("#aGrid").jqGrid('setLabel', "t1",newColHeaders['t1']);
                $("#aGrid").jqGrid('setLabel', "t2",newColHeaders['t2']);
                $("#aGrid").jqGrid('setLabel', 't3',newColHeaders['t3']);

            }else{
                $("#aGrid").jqGrid('addRowData',i+1,responseText[i]);
            }
        }
    },
    error: function(xhRequest, ErrorText, thrownError){

    }
}); 

如果我在删除setGroupHeaders上述代码中的调用后使用相同的代码,则列标题更改按预期工作。

4

1 回答 1

1

这个问题是因为你的组头。当你想改变头部时,首先销毁组头部,然后调用 setLabel 并再次重建组头部。

        $("#aGrid").jqGrid('destroyGroupHeader');

//现在改变标题的标签

        $("#aGrid").jqGrid('setLabel', "to","ABC"); //colModel name value

        constructGroupHeader();

构造组 Header 应该是这样的

    function constructGroupHeader()
    {
jQuery("#aGrid").jqGrid('setGroupHeaders', {
    useColSpanStyle: true,                    
    groupHeaders: [
        {startColumnName:'t0',
         numberOfColumns:8,
         titleText:'10.152.141.142'}]
});
        }

希望这可以帮助。

于 2013-10-30T05:37:05.103 回答