【发布时间】:2016-06-26 09:22:03
【问题描述】:
我的 ASP.NET webforms 应用程序上有 dataTables,其中的表格将由 Page_Load() 的代码隐藏在它显示之前生成。这适用于我的其他页面,但由于某些我不明白的原因,dataTables 在页面上不起作用,它会抛出“datatables.min.js:42 Uncaught TypeError: Cannot read property 'length' of undefined”。我正在使用 DataTables 的零配置方法。
这是我的 Default.aspx 代码:
<table id="jtable" class="table table-striped table-bordered UserTable">
<thead>
<tr>
<th>Job Title</th><th>Job Category</th><th>Date Posted</th><th>Actions</th>
</tr>
</thead>
<tbody>
<asp:Literal runat="server" ID="litJobPostings"></asp:Literal>
</tbody>
</table>
主文件代码:
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.prettyPhoto.js"></script>
<script src="js/jquery.isotope.min.js"></script>
<script src="js/main.js"></script>
<script src="js/wow.min.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/datatables.min.js"></script>
<script>
$(document).ready(function () {
$('#jtable').DataTable();
});
</script>
如何生成表格的 C# 代码:
while (reader.HasRows && reader.Read())
{
tablegen = tablegen + "<tr><td>" + reader.GetString(reader.GetOrdinal("JobTitle")) +
"</td><td>" + reader.GetString(reader.GetOrdinal("JobCategory")) + "</td><td>" + reader.GetString(reader.GetOrdinal("DatePosted")) +
"</td><td><a href = \"JobDetails.aspx?JobCode=" + reader.GetString(reader.GetOrdinal("PostID")) + "\">View/Edit Details</a></td><tr>";
}
reader.Close();
litJobPostings.Text = tablegen;
所以有什么想法吗?同样,这适用于我的其他页面,但不适用于我正在处理的单个页面,我现在很沮丧,哈哈!谢谢! :)
【问题讨论】:
-
您好朋友,在我看来您没有在动态生成表格行时关闭
标记。查看 tablegen 并将最后一个 更改为 。也许DataTable在扫描DOM时有问题 -
天啊!!!!!!我真是太笨了,忘记了哈哈哈!谢谢!现在可以了! :D
标签: javascript c# jquery asp.net datatables