GridView中的自定義列

GridView 可以根據數據源自動生成列,但是如果我們需要自定義列的顯示方式,讓GridView的列完完全全的由我們自己來控制,我們就需要用到一種特殊的列 ――TemplateField。因爲GridView生成的列都是一個字段一列,如果我們需要把兩個字段合併爲一列顯示呢?我們可以使用模板列。我們可以指定包含標記和控件的模版,自定義列的佈局和行爲,我們可以新建一個模版列,也可以直接把已經生成的列轉換爲模版列來進行個性化的設置。

在GridView 上單擊右鍵,選擇編輯模版,在彈出菜單中選擇要編輯的列,出現列模版的編輯畫面。其中HeaderTemplate――自定義列的標頭部分顯示的內容, FooterTemplate――腳註部分顯示哪諶藎?/SPAN>ItemTemplate――是打開網頁後此列數據顯示的內容, EditItemTemplate――此列處於編輯狀態時如何顯示,AlternatingItemTemplate――交替項顯示的內容,也就是說爲了顯示效果,可以隔行分別以不同的風格顯示。

Example 1:
我們現在假設有一個表,其中有一個字段是username,我們現在產生一個自定義列,自定義列中包含此人的照片,同時我們假定照片的路徑爲 image/username.jpg。我們首先右鍵點擊GridView,在智能標記中,選擇編輯列,添加一個模版列,然後編輯模版中的 ItemTemplate,加入一個Image控件,然後右鍵點擊Image控件,選擇Edit DataBindings,在ImageUrl中設置 Field Binding,首先我我要Bound to 數據源中的某列,因爲所有圖片的路徑和格式是相同的,唯有名字不同而已,所以我們這裏選中 username字段,在format中,我們要自己定義其格式,輸入image/{0}.jpg, {0}代表的就是上面綁定的字段,下面有一個 Two Way DataBinding 的複選框,就是是否雙向綁定的意思,如果單向綁定,一般採用Eval,也就是說數值只從數據源傳到頁面上,如果雙向綁定,也就是採用Bind的話,對數據的修改可以回傳到數據源之中。 

在web頁面執行時,不同的行因爲username不同,圖片的名字也會做出相應的替換。點擊確定,然後執行當前網頁,我們就可以看到在我們的自定義列中顯示出了用戶的照片。

Example 2:

在數據庫中,存儲性別的時候,一般採用bit數據類型,存儲爲True或者False,在GridView自動生成列的時候,一般使用 CheckedBoxField 列來顯示bit類型的數據,顯示在網頁上就是一個單選框,如果選中,也就是Checked了,就是男的,否則就是女的。這樣看起來,很不直觀,下面我們通過自定義列將性別顯示爲男、女。

首先在GridView的Show Smart Tag中,選擇編輯列,然後雙擊TemplateFields ,添加了一個模版列,確定後,點擊右鍵選擇編輯模版,選中剛添加的列。在ItemTemplate中添加一個 DropListDown控件,然後編輯它的數據綁定,Edit DataBinding,把SelectedValue屬性綁定到性別列。

在DropListDown 控件中選擇 Edit Item,就是編輯其下拉列表的項,我們添加兩個Item,一個的Text屬性是男,Value設置爲True,一個的Text屬性設置爲女,Value屬性設置爲False。到這裏,你明白了麼?因爲DropDownList控件的顯示文本和其值是可以不一樣的,我們用數據綁定取到了性別這一列的值,True或者False,然後反映到DropDownList控件上,如果值爲True,因爲Text屬性爲男的Item的 Value爲True,所以我們現在運行網頁,在新添加的列中,顯示的不再是單選框或者True、false這些沒有含義的東西,而是以下拉列表的方式顯示出了當前用戶是 男還是女。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章