【问题标题】:JQuery Datatable Question: Centering column data after data insertionJQuery Datatable问题:数据插入后居中列数据
【发布时间】:2011-02-20 05:14:40
【问题描述】:

我有一个最初为空的数据表,并在特定的 Javascript 调用后填充。将数据插入表后,我想将所有数据集中在其中一列中。我尝试以这种方式在初始化步骤中指定它:

dTable = $('#dt').datatable({ 'aoColumns': [ null, null, { "sClass" : "center" }] });

插入完成后,第三列中的数据未居中。我尝试在插入后修改 aoColumns 并重新绘制表格:

dTable.fnSettings().aoColumns[2].sClass = "center";
dTable.fnDraw();

这也不起作用。所以我的问题只是我应该如何告诉数据表将第三列中的数据居中?

提前感谢您的建议。

克里斯

【问题讨论】:

  • 我建议使用 Firebug 检查表格单元格以找出正在应用的样式。也许有些东西被覆盖了?
  • @fudgey,我最初也尝试使用 CSS,但无济于事。每次我添加一行时,我都会使用 dTable.fnAddRow(r) 调用将数据添加到数组 r 中。按照 Favio 的建议使用 Firebug,您会看到表格主体具有由数据表插件设置的特定结构,以支持各种操作。鉴于我所看到的结构,我可能可以使用 CSS 来解决问题,但这远非优雅。一定有更好的方法。

标签: javascript jquery jquery-ui datatable


【解决方案1】:

如果我理解正确,您的表格会从 AJAX 数据中获取多行多列。第三列应该居中。试试这个:

$.ajax({
  url: 'ajax/test.html',
  success: function(data) { //after AJAX completes
    //fill the table.
    $('#dt').children('tr').each(function(){ //for each row
      $(this).children('td').eq(2).attr('align', 'center');  //center the third column.
    });
  }
});

或者,如果您不喜欢使用属性,可以使用.attr(attributeName, value).css( propertyName, value ) 设置样式属性,或者使用.addClass() 添加一个类。

【讨论】:

  • 谢谢布拉德利。我做了类似的事情,在创建数据表之前恢复到 JQuery 来填充表。这样,我可以为第三列中的条目添加一个类,并使用 CSS 将它们居中。现在我在创建数据表后更新它时遇到问题。需要更多调查。
猜你喜欢
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多