我正在从行创建列标题一个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]);