1. 程式人生 > >gridview如何將一行記錄顯示為兩行

gridview如何將一行記錄顯示為兩行

最近遇到這麼一個需求

gridview中原有7個欄位
column1  column2  column3  column4  column5  column6  column7
xxx          xxx         xxx          xxx          xxx          xxx          xxx   
現在需要新增加4個欄位,由於橫向排列會比較長,所以希望可以把新增加的4個欄位放在原有欄位的下面,增加一個控制顯示/隱藏的按鈕來控制新行。
就是這個樣子
column1  column2  column3  column4  column5  column6  column7 
xxx          xxx          xxx          xxx          xxx          xxx          xxx        button
column8:yyy        column9:yyy        column10:yyy      column11:yyy 

由於新的4個欄位需要顯示名稱,所以可能需要合併該行,重新排列4個欄位的顯示

由於gridview生成的是表格,所以要換行處理起來比較困難。

如果換做datalist或者repeater,有了template的存在,就沒有什麼問題了。

或者,可以把gridview只保留一列,所有的東西都定義在一個templatefield裡面,也就相當於repeater,實現起來也不難,只是標題和內容的對齊要控制。

google,百度,找了好久,沒有什麼結果。

CSDN上發了帖子,也是建議不要用gridview的。無奈,繼續google。

意外發現,已經有人給出程式碼了。

嗯,正是我想要的。

關鍵程式碼:

 

注意27行,這裡做了一個inject,結束掉一行並且建立一個新行。這樣,就可以將一行記錄顯示為兩行,而又可以像操作一行記錄那樣操作改行記錄和控制元件。

需要注意的是,結束掉的行的末尾,會多出來一個空列,會佔用一點空間,需要把列隱藏掉。

回頭想想,好像很久以前的時候,組裡的老大曾經講過這個東西。不常用到,忘了。

附上原作者的原文: