JQGrid动态创建列标头

  • 本文关键字:创建 动态 JQGrid jqgrid
  • 更新时间 :
  • 英文 :


我正在从创建列标题一个mysql表(Button1),它工作得很好。例如:我得到标题|A|B|C|在网格当我查询表的行A, B, C

Button2查询同一个表得到不同的行,例如D, e。两个查询都返回预期的数据。

但是,Button2的新头数据是附加的到从Button1创建的列标头。我得到|A|B|C|D|E|.

我想要的只是标题|D|E|。如何清除旧的列标头并替换为新的?

谢谢你的帮助。

var ColModel               = []
var availabilitydept       = ''

$("#button1").click(function() {
availabilitydept = 'de85768424332'
set_up_avgrid()
});
$("#button2").click(function() {
availabilitydept = 'de56827997021'
set_up_avgrid()
}); 

function set_up_avgrid()
{
$("#avgrid").jqGrid("GridUnload")                   
$('#avgrid').jqGrid('clearGridData');
create_colmodel() 
create_grid()               
}

function create_colmodel()
{               
ColModel.push({name      :'Date',index: 'dateindex',resizable : false, align:'left',  
frozen    : true, width : 80, search: false,
resizable : false});         
$.ajax             
({             
url: 'tl2_get_rooms_by_dept.php', 
type: 'GET',
async: false, // ** it don't work with async true.      
data: 'userid='  + 'TL2-0001'                   
+ '&deptid=' + availabilitydept,                                            
dataType: 'json',                     
success: function(rows)
{                                                         
for (var i in rows) 
{
var row  = rows[i];           
ColModel.push({name: row.roomname, index: row.roomname + i, align:'center', resizable : false,  width:50, search:false});          
}          
}                         
});         
}

function create_grid()
{                  
$("#avgrid").jqGrid(
{
shrinkToFit: false,        
height    : 200,
width     : 290,       
colModel: ColModel,             
});
}

解决:我确信有更好的方法,但我最终做的是改变我的查询从mysql表中选择所有行,然后创建网格。当然,网格在表中的每一行都有一列。为了去掉不需要的列,我编写了一个函数来遍历列名并根据需要使用。

隐藏/显示。
$"#avgrid").jqGrid('hideCol',[row.roomname]);
$("#avgrid").jqGrid('showCol',[row.roomname]);

最新更新