jqGrid中的动态列
我尝试让动态列与jqGrid一起工作,但收效甚微。限制在于我可以从控制器控制列名和格式。但是当我这样做的时候,我无法获取数据jqGrid中的动态列,jqgrid,jqgrid-asp.net,Jqgrid,Jqgrid Asp.net,我尝试让动态列与jqGrid一起工作,但收效甚微。限制在于我可以从控制器控制列名和格式。但是当我这样做的时候,我无法获取数据 您是否有一个显示两个调用的控制器代码的小示例解决方案。您实际上可以像正常情况一样绑定列,但可以在运行时使用jquery显示/隐藏它们。例如,我必须在jqgrid中为管理员用户和普通用户显示链接列,该列需要隐藏,所以按照以下方式实现 $("#grid").showCol("Link"); $("#grid").hideCol(
您是否有一个显示两个调用的控制器代码的小示例解决方案。您实际上可以像正常情况一样绑定列,但可以在运行时使用jquery显示/隐藏它们。例如,我必须在jqgrid中为管理员用户和普通用户显示链接列,该列需要隐藏,所以按照以下方式实现
$("#grid").showCol("Link");
$("#grid").hideCol("Link");
$("#grid").trigger("reloadGrid");
我们走吧
$("#datagrid").jqGrid({
//url: "user.json",
//datatype: "json",
datatype: "local",
data: dataArray,
colNames:getColNames(dataArray[0]),
colModel:getColModels(dataArray[0]),
rowNum:100,
loadonce: true,
pager: '#navGrid',
sortname: 'SongId',
sortorder: "asc",
height: "auto", //210,
width:"auto",
viewrecords: true,
caption:"JQ GRID"
});
function getColNames(data) {
var keys = [];
for(var key in data) {
if (data.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
}
function getColModels(data) {
var colNames= getColNames(data);
var colModelsArray = [];
for (var i = 0; i < colNames.length; i++) {
var str;
if (i === 0) {
str = {
name: colNames[i],
index:colNames[i],
key:true,
editable:true
};
} else {
str = {
name: colNames[i],
index:colNames[i],
editable:true
};
}
colModelsArray.push(str);
}
return colModelsArray;
}
JQGrid1.Columns.FromDataField(ColumnName).Visible = false;
JQGrid1.Columns.FromDataField(ColumnName).HeaderText = "Sample";
$("#datagrid").jqGrid({
//url: "user.json",
//datatype: "json",
datatype: "local",
data: dataArray,
colNames:getColNames(dataArray[0]),
colModel:getColModels(dataArray[0]),
rowNum:100,
loadonce: true,
pager: '#navGrid',
sortname: 'SongId',
sortorder: "asc",
height: "auto", //210,
width:"auto",
viewrecords: true,
caption:"JQ GRID"
});
function getColNames(data) {
var keys = [];
for(var key in data) {
if (data.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
}
function getColModels(data) {
var colNames= getColNames(data);
var colModelsArray = [];
for (var i = 0; i < colNames.length; i++) {
var str;
if (i === 0) {
str = {
name: colNames[i],
index:colNames[i],
key:true,
editable:true
};
} else {
str = {
name: colNames[i],
index:colNames[i],
editable:true
};
}
colModelsArray.push(str);
}
return colModelsArray;
}