代码之家  ›  专栏  ›  技术社区  ›  jay

用于Ajax表的DataTables jQuery插件nowrap

  •  1
  • jay  · 技术社区  · 14 年前

    有人能给我一个例子,当一个Ajax表动态生成所有信息时,如何向列添加nowrap=“nowrap”?

    $('#results').dataTable({
        "fnRowCallback": function( nRow, aData, iDisplayIndex ) {
            $(nRow).attr('id', aData[0]);
            return nRow;
        },
        "bAutoWidth": false,
        "sPaginationType": "full_numbers",  
        "bProcessing": true,
        "sAjaxSource": 'ajax/purchasers.php',
        "aaSorting": [[1,'asc']],                   
        "aoColumns": [                              
            { "bVisible": false },                      
            null,                                   
            null,
            null,
            null,
            null,
            null,
            null
        ]
    });
    

    我知道这可能是一个长期的尝试。事先谢谢。

    3 回复  |  直到 11 年前
        1
  •  8
  •   Karthik Murugesan    13 年前

    最好是通过造型来实现这一点。

    "aoColumns": [                              
        { "sClass": "my_class"},
    

    在样式表中

        .my_class {
       white-space:nowrap;
     }
    
        2
  •  2
  •   kasdega    13 年前

    虽然添加一个类并为此创建一个CSS条目肯定会起作用,但看起来就像用锤子敲入一个螺丝钉。

    数据表已经提供了一种简单的方法。

    在数据表声明中,添加:

    "fnRowCallback": function( nRow ) {
        if(nRow.cells[2]) nRow.cells[2].noWrap = true;  // column index starts with 0 and we check if cells[2] is null to be ultra safe
        return nRow;
    },
    

    希望这有帮助

        3
  •  -1
  •   jay    14 年前

    如果任何人对该解决方案感兴趣,可以在完成数据表的呈现后使用fninitComplete循环表,如下所示:

    $('#results').dataTable({
        "fnInitComplete": function() {
            $('#results tbody tr').each(function(){
                    $(this).find('td:eq(0)').attr('nowrap', 'nowrap');
            });
        },
        "sAjaxSource": 'ajax/purchasers.php'
    });