2015-02-05 36 views
1

我有一個HTML表格,我在其中進行排序和篩選,並且在進行篩選時,我的列寬度有所不同。我想知道在內容加載到表格後是否有辦法強制表格保持寬度。所以當我進行篩選或排序時,什麼都不會移動,並且它會在每一列中保持寬度。強制表格列在內容加載後被修復

我需要保持寬度靜態AFTER數據加載到表中,因爲我不總是加載相同的數據。我首先希望數據能夠很好地調整到表格中,然後在排序或過濾之後永遠不要讓它改變寬度。

謝謝。

+0

你可以得到的實際寬度你的列在px中用'clientWidth'加載後,然後將width設置爲該值。 – icke 2015-02-05 13:19:03

+0

您可以將表格的HTML/CSS代碼添加到問題中嗎? – 2015-02-05 13:26:15

+0

不能這樣做,一些其他數據進來可能有不同的寬度,我不會每次加載相同的數據。在頁面加載時,我希望我的表進行調整,但是在將數據加載到我的表中後,我希望寬度保持靜態並且永遠不會更改。 – user2133160 2015-02-05 13:29:19

回答

1

我希望我理解正確你的問題。只要數據加載,您可以將您的單元格width保留在auto上,以便您的表格以您想要的方式進行調整。然後過濾數據時,讀取列的實際寬度像素

var firstColumnWidth = $("td:nth-child(1)").get(0).clientWidth; 

,並設置width到固定值

$("td:nth-child(1)").each(function(i){$(this).css("width",firstColumnWidth+"px");}); 

例子:http://jsfiddle.net/3vqja4sa/

+0

這是不夠的。單元格內容的變化可能會導致列寬分配的變化,除非你在(初始頁面加載後執行的腳本)中設置'table-layout:fixed'並將表格的'width'屬性設置爲一個特定的值(列寬)。 – 2015-02-05 13:54:22

+0

據我所知,在初始加載數據後,單元格的內容不會改變。但是,如果它確實是好的。 – icke 2015-02-05 16:15:45

0

添加樣式表格,這將解決您的問題

#table-id{ 
position:fixed; 
display:block; 
} 

#table-id{ 
    position:fixed; 
    display:inline-block; 
    } 
+1

我真正需要的是我的寬度保持靜態後,我加載數據到它。對於頁面加載,我希望我的表適應所輸入的數據,但在此之後,我希望列的寬度保持不變並永不改變。 – user2133160 2015-02-05 13:27:19

0

,您可以給每個列一些最小或最大寬度。

.custom-max 
{ 
max-width: value; 
} 

OR

.custom-min 
{ 
min-width: value; 
} 
+1

我真正需要的是我的寬度在我將數據加載到它之後保持靜態。對於頁面加載,我希望我的表適應所輸入的數據,但在此之後,我希望列的寬度保持不變並永不改變。 – user2133160 2015-02-05 13:29:40