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 を取得する方法、または単にそれを機能させる方法は?
前もって感謝します。