将jQuery DataTable插件应用于ASP.NET中动态生成的表

时间:2012-08-19 02:47:02

标签: jquery asp.net datatables

我的要求如下:

在我的ASPX页面中,我使用fileUpload从电子表格导入数据并动态生成ASP.NET表格。表行和列维度和数据由文件本身设置 - 这意味着我的应用程序在导入数据之前不了解行和列。

我想要做的是将jQuery DataTables插件应用于动态生成的表。当用户单击页面上的“导入”按钮时,将生成该表。

我遇到的问题是格式化表的jscript在表可用之前运行,因此DataTable插件会抱怨列。错误如下:

  

无法获取属性'aoColumns'的值:object为null或undefined

我尝试将以下代码添加到我的Button_Click事件中,但它在加载表之前发生:

  

ClientScript.RegisterClientScriptBlock(Me.GetType(),“FormatTable”,“FormatTable();”,True)

jscript如下:

  function FormatTable() {
                    var oTable = $('#tblMyTable).dataTable({
                        "bJQueryUI": true,
                        "sScrollY": "300px",
                        "sScrollX": "100%",
                        "sScrollXInner": "150%",
                        "bScrollCollapse": true,
                        "bPaginate": false
                    });
                    new FixedColumns(oTable);
    };

我确保桌子格式正确,包括桌子,thead,tr,th,tbody,tr,td。当从后面的代码生成表时,它将插入到服务器占位符控件中。

所以我的问题是:如何使用jQuery DataTables插件成功格式化服务器生成的表?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您希望在DOM准备好后执行代码。 为此,jQuery提供了ready函数。

仅在DOM准备就绪后调用FormatTable,如下所示。

ClientScript.RegisterClientScriptBlock(Me.GetType(), "FormatTable", 
                    @"$(document).ready(function() {FormatTable();});", True);