“oCol未定义”使用Datatables和jQuery Ui Dialog

我有一个表单,用于搜索注册表。 这个表单显示了jQuery Dialog中的信息,并且在对话框中,我使用的是Datatables (是的,在对话框中我有一个完整的表)。 我用PHP动态生成TR和TD,然后,PHP将字符串粘贴到HTML中。 但是,当显示对话框时,我收到此错误:

oCol未定义:oCol.fnSetData(oData,val);

我在Firefox和Chrome中尝试它,它也是一样的。 我也在http://www.datatables.net上搜索过,我丢弃了一个’格式错误的表’。 我不知道我做错了什么。

你能帮帮我解决这个问题吗?

这是我的JS Block:

      $(document).ready(function (){ $("#results").dialog({ title: "Results", width: 900, height: 500, open: function(event, ui){ $("#tRes").dataTable({ "bPaginate": true, "bLengthChange": true, "bFilter": true, "bSort": true, "bInfo": true, "bAutoWidth": true }); } }); });  

这是我的表(使用PHP代码段):

 
ID Name State Address

提前致谢。

您是否尝试过如下设置列:

  $("#tRes").dataTable({ "bPaginate": true, "bLengthChange": true, "bFilter": true, "bSort": true, "bInfo": true, "bAutoWidth": true, "aoColumns": [ null, null //put as many null values as your columns ] }); 

如果这仍然不起作用,你也可以发布生成的HTML吗? 您可以考虑的另一件事是在document.ready上初始化表,而不仅仅是在打开对话框时,但我不认为这是问题。

这可能会发生,因为您的表格结构不正确。 一定要有thead和tbody。 我有这个错误,一旦我添加了thead和tbody它就消失了。 我的设置与其他回复中的设置完全不同 – 我不确定为什么这个设置有效,因为它不适合我。

 table thead tr th`s tbody tr`s td`s 

jQuery datatables插件要求

标记中的元素数量与表格的

标记中

元素数量相匹配

$(“#tRes”)。dataTable({“bPaginate”:true,“bLengthChange”:true,“bFilter”:true,“bSort”:true,“bInfo”:true,“bAutoWidth”:true,});

从您的页面中删除此代码并检查设置文本框值的语法,然后它将正常工作。