繁体   English   中英

jQuery数据表可自定义列(asp.net usercontrol)

[英]jQuery datatables customizable columns (asp.net usercontrol)

网络表单应用程序。

在我的.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数据表移动到用户控件,以便可以在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配置,则其他方法也很好,但是我想它会更加棘手。

有什么线索吗?

我已经使用jqGrid实现了动态columnDefs(colModel)功能。 您可以在此处阅读帖子jqgrid-动态阅读-aspx代码中的colmodel和colnames

您可能会从代码隐藏中获得生成动态columnDefs(在上一篇文章中的xxx_colModel)和ajaxData(在上一篇文章中的xxx_Data)的基本思想,并以自己的方式实现。 设置列的属性以隐藏在动态生成的columnDefs中。

关于隐藏列的方法:

我正在考虑从服务器发送json中的其他属性,该数组可能名为HideCols,该数组具有我要隐藏的列的索引,然后与jQuery一起应用一些代码来隐藏它们。

您可以将其他属性以及xxx_colModel和xxx_Data(例如xxx_HiddenCols)添加到JSON的顶层,并存储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 );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM