背景:因公司項目需要革骨,需要對app的模塊信息做展示,利用bootstrap table做出的表格具有實現(xiàn)代碼簡單,美觀的特點奇徒。但app的模塊信息較多,而且模塊的版本一直在跌進(jìn)缨硝,若將所有信息都展示在表格中摩钙,后續(xù)數(shù)據(jù)量會越來越大。因此查辩,我們使用bootstrap table的formatter來動態(tài)添加select元素胖笛,并使用multislect控件來實現(xiàn)下拉的樣式與效果。最后達(dá)成只顯示所有模塊部分版本信息宜岛,支持選擇查看特定版本信息的功能长踊。代碼實現(xiàn)的邏輯大體如下圖所示,下面將一步步講解萍倡。
搭建html骨架
具體代碼如下所示身弊,我們引入必須的css樣式和js代碼,并在html代碼里放置table元素列敲。?
使用bootstrap table定義表格并加載數(shù)據(jù)
表格定義與加載的代碼如下所示:
bootstrap table文檔地址http://bootstrap-table.wenzhixin.net.cn/
需要注意的是阱佛,我們在fromatter處調(diào)用函數(shù)version_formatte()來給每個版本(version字段)添加select元素,并給每個select添加id酿炸,以便后續(xù)獲取選中的select值瘫絮。version_formatte()函數(shù)代碼如下:
實現(xiàn)select效果
接下來,只需要往select里填值填硕,我們代用函數(shù)appendSelct()來實現(xiàn)此功能麦萤,在appendSelct()函數(shù)中調(diào)用multiselect()函數(shù)來實現(xiàn)表格所示的效果,默認(rèn)情況下扁眯,會選中select第一個option的值壮莹。appendSelct()函數(shù)代碼如下所示:
Bootstrap Multiselect文檔地址http://www.kuitao8.com/demo/20140224/1/bootstrap-multiselect-master/index.html
實現(xiàn)的表格如下圖所示
實現(xiàn)選擇模塊版本刷新表格功能
當(dāng)我們選擇查看模塊不同版本信息后刷新表格數(shù)據(jù)時,select會默認(rèn)選中第一個option的值姻檀,若不做處理命满,實際的數(shù)據(jù)就與版本對應(yīng)不上。為此绣版,我們定義了兩個全局變量selectArray和drapdownValueArray胶台,分別存放所有select當(dāng)前選中的option值以及select的所有option值歼疮。在函數(shù)collect_selectValue()中,收集了刷新表格前選中的版本值诈唬,之后韩脏,我們調(diào)用load_demoTableQuote()重組表格,調(diào)用appendSelctValue2()函數(shù)來選中版本正確的值铸磅。
在appendSelctValue2()函數(shù)中赡矢,我們分別使用$("#"+versionId).multiselect('deselect', drapdownValueArray[round])來清除select默認(rèn)選中的版本值,再使用$("#" + versionId).multiselect('select', selectArray[round])語句選中對應(yīng)的版本值阅仔,從而實現(xiàn)表格信息與版本信息的一致吹散。
我們選擇模塊1的2.0版本后刷新表格,最終實現(xiàn)的效果如下圖所示八酒。