我正试图让jquery.dataTables
插件在MVC5中工作。
我已经添加了所有内容(库和css)并且正确地包含在我的包中,并且可以验证所有内容都存在,并且通过使用直接html标记创建第二个表来实现它。那个显示并具有dataTables基本功能。但我动态制作的表格会出现以下错误:
Unhandled exception at line 669, column 8 in .../Scripts/jquery.dataTables.js
Unable to get property 'className' of undefined or null reference.
我已验证我的表格ID是否正确。
- 修正
- 不确定这是如何工作的。但我偶然发现了问题/解决方案。 无论如何我会提交这个,以防我发现有用。
THead部分有一个空单元格。 (<td></td>
对)使TBody
部分与单元格数不匹配。它可以通过添加另一个空的Body单元格或删除THead单元格来工作。显然,这两个项目必须一对一匹配。
答案 0 :(得分:1)
不应该有任何空的<th>
,足以使<td>
与<th>
的数量相匹配。你的解决方案是对的。
答案 1 :(得分:0)
visual studio脚手架生成的表没有
<thead>
或<tbody>
代码。
生成的表的默认结构是:
<table>
<tr>
<th>...</th>
<th>...</th>
<th></th> <!-- the EMPTY header column -->
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
.
.
.
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</table>
请注意,默认情况下,最后一个标题列为空,因为在子行中它具有C RUD 命令:
编辑|细节|删除
要使DataTables生效,<thead>
是强制性的,<tbody>
是可选的。当您要添加<thead>
标记时,最好添加<tbody>
标记,仅用于可读性/对称性[恕我直言]。
使用当前版本的DataTables(1.10.9),它可以正常运行仅添加<thead>
标记。
所需的最低结构是:
<table>
<thead>
<tr>
<th>...</th>
<th>...</th>
<th></th> <!-- it will work -->
</tr>
</thead>
<tbody> <!-- optional, just for readability -->
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
.
.
.
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</tbody>
</table>
来源:刚刚重新测试了所有这些要点。