MVC jquery.数据表无法获取属性'未定义或空引用的

MVC jquery.dataTables Unable to get property 'className' of undefined or null reference

本文关键字:未定义 引用 数据表 jquery 属性 获取 MVC      更新时间:2023-09-26

我正试图让jquery.dataTables插件在MVC5中工作。
我已经添加了一切(库和css),并包括在我的包正确,可以验证,所有的都在那里,它的工作通过使用直接html标签制作第二个表。那个显示并具有数据库的基本功能。但是我动态创建的表得到以下错误:

Unhandled exception at line 669, column 8 in .../Scripts/jquery.dataTables.js
Unable to get property 'className' of undefined or null reference. 

我已经验证我的表id是正确的。

固定

——

—不确定这是如何工作的。但是我偶然发现了问题/解决办法。我还是要提交这个,以防我发现的有用。

head部分有一个空单元格。(一对<td></td>对)使TBody切片在细胞数上不匹配。它可以通过添加另一个空的Body单元格或删除head单元格来工作。很明显,这两项必须一一匹配。

不应该有任何空的<th>,应该添加足够的<td>来匹配<th>的数量。你的解决方法是正确的。

由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>

请注意,最后一个标题列默认为空,因为在子行中它具有CRUD命令:

编辑|详细信息|删除

要使datatable工作,<thead>是必须的,<tbody>是可选的。当你要添加<thead>标签时,最好添加<tbody>标签也只是为了可读性/对称性[IMHO]。

在当前版本的数据表(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>

来源:刚刚重新测试了所有这些点