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