1

全部,

想知道是否有人可以提供帮助。我通过 dom 操作和 JSON 代码使用 DataTables 已经有一段时间了。但是,我们的两个较大的结果集仍然运行得太慢,所以我试图将它们转换为客户端数据源。我在那里有带有标题的表格,但数据没有被注入到标记中。

我已经构建了输出页面并复制了该代码的输出片段以供参考。它正在通过 JSON 验证器进行验证,我看不出它与示例代码之间没有区别。事实上,有一次我尝试使用我网站上的示例数据来使这项工作无济于事。没关系,但我的 JSON 是通过 Symfony 操作创建的,可以直接访问(当然是登录)我可以通过 XHR 调用成功地在 Firebug 上看到经过验证的 JSON 输出,所以我知道它在运行时可用于浏览器。我在此页面中运行了其他数据表,因此包含已正确设置。我的理论是,与实例化有关的某些东西,无论是格式错误的参数还是缺少的命令,都会导致它失败而没有错误。

以下是我的代码:

AJAX 页面输出(为清晰起见截断):

{"sEcho": 0, "iTotalRecords": 1788, "iTotalDisplayRecords": 1788, "aaData":[["", "<a href=\"/web/link/123\"><img border=\"0\" alt=\"View Prospect\" src=\"/web/images/view.png\" /></a>", "First", "Last", "company ", "address", "city", "state", ""] ,["", "<a href=\"/web/link/124\"><img border=\"0\" alt=\"View Prospect\" src=\"/web/images/view.png\" /></a>", "first1", "last1", "company1", "address1", "city1", "state1", "email1"] ]}

jQuery初始化:

jQuery('#prospectList').dataTable( {
         "bProcessing": true,
         "bServerSide": true,
         "sAjaxSource": "/web/prospect/ajax",
         "bJQueryUI": true,
         "sPaginationType": "full_numbers",
         "bAutoWidth": false,
         "bFilter":true,
         "bLengthChange": true,
         "bPaginate": true,
         "bSort": true,
         "iDisplayLength": 10,
         "bInfo": true,
         "aoColumns": [
            { "sTitle": "Action" },
            { "sTitle": "First Name" },
            { "sTitle": "Last Name" },
            { "sTitle": "Company" },
            { "sTitle": "Street"},
            { "sTitle": "City" },
            { "sTitle": "State" },
            { "sTitle": "Email" }
         ]
      })

有人看到有什么遗漏吗?提前致谢。

4

1 回答 1

0

好的,我知道了。字符串中的“sEcho”值默认设置为 0 以进行测试。除非设置为 1,否则它不会做任何事情。此外,请注意确保通过 JSON 传递的值被正确编码为整数。

于 2010-07-19T18:58:56.370 回答