【问题标题】:Objects in jquery DataTable only work for the first pagejquery DataTable 中的对象仅适用于第一页
【发布时间】:2013-07-31 22:19:52
【问题描述】:

我正在使用 ASP.net 构建一个 Web 应用程序,并使用 jQuery DataTable 插件从我从数据库中检索到的信息创建我的表。我用正确的信息很好地填充了表格,唯一的问题是任何对象(例如提交按钮)在第 1 页之后都不会正常运行。这只发生在我正在使用的其中一个 aspx 页面上,而它在另一个。尽管它们几乎完全相同,只是少了一列,当然还有表格每个单元格中的内容。

我知道有一些解决方案,例如使用 live() 和绑定这些按钮,但我如何为标签和其他对象做到这一点?更清楚地说,当我尝试从该表中设置标签样式时,它仅适用于第一页,因此 DataTables 无法识别除第 1 页之外的所有其他元素。

【问题讨论】:

  • 页面是否有javascript错误?
  • 不,没有错误出现。表中的所有其他内容都有效,例如扩展每行的详细信息、结构和分页。唯一的问题是,由于某种原因,它在创建时仅绑定了每页指定数量的可见行,并且不适用于表格上的任何其他页面。
  • 你能分享一些做这种样式和分页的代码吗?
  • @Nilesh 这是初始化 var oTable = $('#tblWebsites').dataTable({ "aoColumnDefs": [ { "bSortable": false, "aTargets": [0] } ], ' sPaginationType':'full_numbers',“aaSorting”:[[1,'asc']],“oDeleteRowButtonOptions”:真,“iDisplayLength”:2,“bLengthChange”:假,“bFilter”:假,“bSort”:假, "sClass": "center", "bAutoWidth": false, "aoColumns": [{ "sWidth": "5%" }, { "sWidth": "22%" }, { "sWidth": "25% " }, { "sWidth": "25%" }] });
  • 就样式而言,它的所有 CSS 东西都是 jquery 搜索的类,比如说一个标签,并找到该元素的特定 ID(我使用的是 asp:repeater)并应用一个样式取决于标签的文本是什么。我几乎可以肯定,它必须通过添加一些处理程序来做更多事情,只是不确定我该如何做到这一点,以便每行中的每个元素都得到绑定,无论该行是刚刚创建还是将来创建。

标签: jquery asp.net jquery-plugins


【解决方案1】:

因此,经过几个小时尝试通过将每个元素与 .live 或 .on 事件绑定来解决此问题后,我找到了一个解决方案,在初始化 dataTable 之前对元素进行所有样式设置和修改。

在我的例子中,我们的目标是在查询数据库后设置标签的样式,条件是它的值等于“已连接”或“未连接”。

在我这样做之前......

var oTable = $('#tblWebsites').dataTable({
        "aoColumnDefs": [
            { "bSortable": false, "aTargets": [0] }
        ],
        'sPaginationType': 'full_numbers',
        "aaSorting": [[1, 'asc']],
        "iDisplayLength": 2,.......});

我调用一个函数来检查我的每个标签并使用条件设置它们的样式。完美运行!这也适用于可能需要一些用户操作的任何其他元素,例如文本区域。

希望我的解决方案能帮助任何有类似未来情况的人!

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 2018-05-07
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多