簡體   English   中英

DataTables 自動動態列寬

[英]DataTables auto dynamic column width

我有一個數據表,通過 ajax 填充了 json 數據。 我將 autoWidth 屬性設置為 false。 我要做的是根據返回的內容將某些列設置為具有寬度。

在分頁期間發生的情況是表格正在重繪或我 go 到的每一頁。 這會導致列在不同位置反彈和/或改變該列的寬度。 我似乎找不到我需要做的事情。

我正在尋找的是一旦表中第一次加載數據,每列 min-width 設置為該行中返回的最大數據內容。 我希望我解釋正確。 我最終想要的是第一次加載數據后不調整寬度的列。 所以不要對列進行分頁或排序。

我唯一嘗試的是 table.columns.adjust().draw(); 但我輸入了drawCallback function,因為我不知道還能在哪里做。 這似乎對我沒有任何幫助。

我已經用谷歌搜索了足夠長的時間,並希望有人至少可以為我指出正確的方向或提供一點幫助。

我想不出使用 DataTables 本身的好方法,因為必須在初始化時聲明列寬。

但是,在加載完所有內容后,您可以使用 vanilla JavaScript 和 CSS 執行類似的操作:

    // get the table headers into an array
    let tableHeaders = document.querySelectorAll("#YOUR-TABLE-ID thead th");

    tableHeaders.forEach((element) => {
        // get the computed width for the column
        const computedWidth = window.getComputedStyle(element).getPropertyValue("width");
        // set CSS min-width on element
        element.style.minWidth = computedWidth;
    });

寬度將自動應用於與具有寬度 styles 的<th>元素相同的列中的所有<td>元素。

另請注意,DataTables 為每個<th>元素分配一個width樣式屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM