net webforms application。
在我的.aspx页面中我使用jQuery数据表并使用ajax获取数据。
在我的jQuery数据表中,我有一些用于设置列的配置:
'columnDefs': [{
'targets': 0,
'searchable': false,
'orderable': false,
'className': 'dt-body-center',
'render': function(data, type, full, meta) {
//return '<input type="checkbox">';
if (data == "false") {
return '<input type="checkbox" class="styled green">';
} else {
return '<input type="checkbox" class="styled green" checked="' + data + '">';
}
}
}],
我需要将此jQuery数据表移动到usercontrol,以便它可以在Web应用程序的其他部分重用,但我应该能够让控件知道要隐藏哪些列。
我正在考虑从服务器发送我的json中的其他属性,一个名为HideCols
的数组,其中包含我想要隐藏的列的索引,然后使用jQuery一些代码来隐藏它们。
我得到的表数据如下:
"fnServerData": function(sSource, aoData, fnCallback) {
aoData.push(
{ name: "filter", value: filterVal }
);
$.ajax({
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"type": "GET",
"url": sSource,
"data": aoData,
"success": function(msg) {
// here I get my json table data from server
var json = jQuery.parseJSON(msg.d);
fnCallback(json);
// here I can do my jQuery code to hide columns
if(json.HideCols != null)
{
}
}
});
}
如果我可以从服务器发送columnDefs
配置,那么其他方式会很棒,但我想它会更棘手。
有任何线索吗?
答案 0 :(得分:0)
我已经使用jqGrid实现了动态columnDefs(colModel)功能。您可以在此处阅读帖子jqgrid-dynamic-reading-of-colmodel-and-colnames-from-codebehind-of-aspx
您可以从代码隐藏中获得生成动态columnDefs(上面的帖子中的xxx_colModel)和ajaxData(上面的帖子中的xxx_Data)的基本思想,并以您的方式实现它。设置要在动态生成的columnDefs中隐藏的列的属性。
关于隐藏列的方法:
我正在考虑从服务器发送我的json中的其他属性,一个名为HideCols的数组,其中包含我要隐藏的列的索引,然后使用jQuery一些代码来隐藏它们。
您可以将另一个属性添加到顶级JSON以及xxx_colModel和xxx_Data说xxx_HiddenCols并存储csv列ID,例如2,8,9
然后在客户端,在网格初始化之后,您可以使用for循环来处理每个列以隐藏,例如。
var colArray = xxx_HiddenCols.split(',');
for (var i = 0; i < colArray.length; i++) {
table.column( colArray[i] ).visible( false );
}