1

我想在 gridComplete 之后更改列名,所以我在 gridComplete 块中调用:

setTimeout(function(){
            formatCols()
        },"200");

formatCols 函数是一个 ajax 函数:

function formatCols(){
var ids = new Array();
$("tr.jqgrow").each(function(){
    ids.push($(this).attr("id"));
})
$.ajax({
    type: "post",
    dataType: "json",
    data:{
        podszkola: $('#szkola_select').val(),
        ids: ids
    },
    url: location.protocol+"//"+location.host+"/sekretariat/ksiegaewidencji/getyears",
    success: function(data){
        var columnNames = $("#list").jqGrid('getGridParam','colModel');
        for(var i =1; i<=13 ; i++){
            $("#list").setLabel(columnNames[i+1].name.toString(), data.response[i] ,"",{});
        }

        if(firstGrid){
            jQuery("#list").jqGrid('setGroupHeaders', {
                useColSpanStyle: true, 
                groupHeaders:[
                {
                    startColumnName: 'Nr.', 
                    numberOfColumns: 2, 
                    titleText: '<em>Dane Osobowe</em>'
                },
                {
                    startColumnName: 'r1', 
                    numberOfColumns: 13, 
                    titleText: '<em>Spełnienie obowiązku szkolnego w kolejnych latach</em>'
                }
                ]
            });
        }
        firstGrid = false;
        updateCellWidth("list")
        $("#mainLoadingScreen").hide();
    }
})

}

这些功能的主要部分是:

for(var i =1; i<=13 ; i++){
            $("#list").setLabel(columnNames[i+1].name.toString(), data.response[i] ,"",{});
        }

它工作正常,但只有一次!当我尝试更改网格表函数的页面时,会更改错误列的名称。我认为问题是 setLabel() 函数的第一个参数,但我不知道我应该在那里传递什么以使其正常工作。如何获取当前(更改后)colNames,或者只是如何使其工作?

提前致谢。

4

0 回答 0