| 前言:最近項目里面需要用到表格的凍結(jié)列功能,所謂“凍結(jié)列”,就是某些情況下表格的列比較多,需要固定前面的幾列,后面的列滾動。遺憾的是,bootstrap table里自帶的fixed column功能有一點bug,于是和同事討論該如何解決,于是就有了這篇文章。 一、起因回顧最近項目里面有一個表格需求,該表格列是動態(tài)產(chǎn)生的,而且列的數(shù)量操作一定值以后就會出現(xiàn)橫向滾動條,滾動的時候需要前面幾列固定。也就是所謂的excel的凍結(jié)列功能。該如何實現(xiàn)呢?不用多說,當(dāng)然是查文檔,于是找到了這篇http://issues./bootstrap-table/index.html#extensions/fixed-columns.html。谷歌瀏覽器效果如下: 第一列固定 
 
 貌似問題完美解決!可是,事與愿違,很遺憾,上面說了,這是谷歌瀏覽器的效果,沒有問題。我們來看看IE里面 IE11效果: 
 IE10效果: 
 很顯然,不管是IE內(nèi)核版本多少,凍結(jié)的列里面的內(nèi)容都無法顯示。怎么辦?這可為難死寶寶了! 二、解決方案還好有萬能的開源,查看該頁面源代碼發(fā)現(xiàn)可以找到凍結(jié)列這個js的源碼。 
 點擊進(jìn)入可以看到這個js的所有源碼,找到源碼就好辦了,我們試著改改源碼看是否能解決這個bug。 我們在bootstrap-table下面的extensions文件夾下面新增加一個文件夾fixed-column 
 下面就貼出我們改好的源碼:  bootstrap-table-fixed-columns.js修改后的源碼  bootstrap-table-fixed-columns.css修改后 主要修改的地方: 1)源碼里面將thead和tbody分別封裝成了一個單獨的表格,修改后將thead和tbody放到了一個table里面; 2)依次遍歷凍結(jié)的列放入到固定的tbody里面; 其實也就改了那么幾個地方,就能完美解決IE的bug。我們先來看看效果: IE11 
 IE10 
 IE8 
 
 我們再來看看如何使用。 1、引用js和對應(yīng)的css <script src="~/Content/bootstrap-table/extensions/fixed-column/js/bootstrap-table-fixed-columns.js"></script> <link href="~/Content/bootstrap-table/extensions/fixed-column/css/bootstrap-table-fixed-columns.css" rel="stylesheet" /> 2、js調(diào)用如下 
 加兩個參數(shù)fixedColumns和fixedNumber即可,什么意思不用過多解釋,是否凍結(jié)列、凍結(jié)列的列數(shù)。還有一點需要說明的是,這里調(diào)用的時候不能指定它的height,如果指定height,表格的凍結(jié)顯示會有問題。 三、總結(jié)以上就是表格凍結(jié)關(guān)于IE兼容性問題的解決方案,如果你也正好用到bootstrap table 的列凍結(jié),呵呵,福利來了。總體上來說,就是在原有擴(kuò)展js的基礎(chǔ)上面做了一些小小的修改。能用,如果大伙覺得有什么問題,歡迎指出。 
 | 
|  |