jquery 数据表列标头

xjreopfe  于 2023-02-03  发布在  jQuery
关注(0)|答案(3)|浏览(139)

我有这样的table

<table id="tbl_orderstatus" class="dataTable table table-bordered table-hover table-full-width nowrap" width="150%" data-table="tblorderstatus">
    <thead>
        <tr>
            <th>Buyer</th>
            <th>Season</th>
            <th>Style#</th>
            <th>KP#</th>
            <th>Item Description</th>
            <th>Buyer PO</th>
            <th colspan="2">Qty</th>
            <th>Material</th>
            <th>Destination</th>
            <th>Delivery Date</th>
        </tr>
    </thead>
</table>

但我的问题是,我只是把<th colspan="2">Qty</th>,这是错误的,它说uncaught风格未定义。我如何使closspan像这样?因为我需要把2个数据列的数量。
tq的答案,我打赌我必须使用两行的标题。tQ家伙:)

qgelzfjb

qgelzfjb1#

这是一个老线索,但仍然-我想分享我在自己的项目中想出的东西。我需要基本相同的东西-我想跨越一个标题超过3列而不加强它,保持在一行。
您看到这个错误是因为jQuery DataTables希望每个字段都有一个单独的列来分配处理程序或其他什么。我们可以通过添加另一个标题行来消除这个错误,其中的标题列数量与您希望跨越的标题列数量一样多。在我的示例中,我添加了3个标题列。
现在,错误消失了,但标题看起来很可怕。看起来没有必要,但设置所有其他顶部行标题列跨越2行(行跨度)。现在,"魔术"-因为我们的第二行标题列不包含任何信息,只是隐藏他们!

$(document).ready(function() {
    $('#example').DataTable();
});
<script
  src="https://code.jquery.com/jquery-3.2.1.js"
  integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
  crossorigin="anonymous"></script>
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css" rel="stylesheet"/>

<table id="example" class="display" cellspacing="0" width="100%" style="text-align: center;">
    <thead>
        <tr>
            <th rowspan="2">One</th>
            <th colspan="2">Two and Three</th>
            <th rowspan="2">Four</th>
            <th rowspan="2">Five</th>
        </tr>
        <tr style="display:none">
            <th></th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td> First data </td>
            <td> Second data </td>
            <td> Third data </td>
            <td> Fourth data </td>
            <td> Fifth data </td>
        </tr>
    </tbody>
</table>

瞧,这是我能想到的最干净的解决方案了,不过也行.

gblwokeq

gblwokeq2#

您需要为每一行放置一个标题,因此标题应该如下所示:

<thead>
                    <tr>
                        <th rowspan="2">Buyer</th>
                        <th rowspan="2">Season</th>
                        <th rowspan="2">Style#</th>
                        <th rowspan="2">KP#</th>
                        <th rowspan="2">Item Description</th>
                        <th rowspan="2">Buyer PO</th>
                        <th colspan="2">Qty</th>
                        <th rowspan="2">Material</th>
                        <th rowspan="2">Destination</th>
                        <th rowspan="2">Delivery Date</th>
                    </tr>
                    <tr>
                        <th>Qty 1</th>
                        <th>Qty 2</th>
                    </tr>
                </thead>

            </table>
vdgimpew

vdgimpew3#

我测试了,它正在运行。也许你忘了添加一个<td></td>

<table id="tbl_orderstatus" class="dataTable table table-bordered table-hover table-full-width nowrap" width="150%" data-table="tblorderstatus">
    <thead>
        <tr>
            <th>Buyer</th>
            <th>Season</th>
            <th>Style#</th>
            <th>KP#</th>
            <th>Item Description</th>
            <th>Buyer PO</th>
            <th colspan="2">Qty</th>
            <th>Material</th>
            <th>Destination</th>
            <th>Delivery Date</th>
        </tr>
    </thead>
    <tr>
        <td>Test</td>
        <td>Test</td>
        <td>Test</td>
        <td>Test</td>
        <td>Test</td>
        <td>Test</td>
        <td>Test 1</td>
        <td>Test 2</td>
        <td>Test</td>
        <td>Test</td>
        <td>Test</td>
    </tr>
</table>

相关问题