DataList控件 一、DataList控件是一種事件反生機制。 DataList的生成過程: 逐行建立、逐行綁定。 每一行都是一個對象先生成一個空項,無資料,如果是普通的項則生成出對應的表格,如果是編輯項,則不僅生成出相應的表格,而且生成出相應的控件,對應的文本框、下拉清單、單選按鈕清單等等。當然如果普通項中有控件也會在建立每一行的時候生成出來。反正逐行建立的意思就是除了資料以外的所有的東西都展現出來,包括控件、包括樣式表、表格等等,反正沒有資料。所謂逐行綁定,就是綁定建立出來的每一個生成出來的單元格的資料。 頁眉在建立的時候就展現完整了,不需要綁定資料。 每一次建立完每一行都會來調用 ItemCreated()事件。 每次綁定資料完都會來執行 ItemDataBound()事件(包括頁眉在綁定的時候,盡管綁定沒有資料,也會來執行綁定,綁定完以後也會來執行這個事件,是以說頁眉和其它項在建立和綁定上沒有差別,盡管資料時寫死在每一個單元格上面的,不需要資料的綁定)。 --------------------------------------------------------------------- 下面主要來說說操作DataList背景代碼的一系列關鍵字、關鍵語句及其他們的作用和意思。 e.Item //代表剛剛建立或綁定完的行對象。 e.Item.ItemType //代表剛剛建立或綁定完的行對象的類型。 e.Item.DataItem //綁定到目前行的資料對象 //在ItemCreated()事件中這個資料對象為空 //隻有在ItemDataBound()中才有資料 //一般用在ItemDataBound()事件中 e.Item.ItemIndex //剛剛建立完行的索引号。 //從0開始。用的時候,從資料首行(不包含頁眉開始數) e.Item.FindControl(string id ) //傳回Control類型 根據控件ID在目前項中(頁眉項 HeaderTemplate、頁腳項 FooterTemplate、資料項 ItemTemPlate、資料交替項 AlterNatingItemTemplate、編輯項 EditItemTemPlate、選中項SelectedItemTemplate...)找到對應的控件。 注:我們在做更新按鈕的時候(CommandName設為Update),本身更新按鈕就在編輯模闆中(EditItemTemPlate),是以UpdateCommand()事件中所有的e.Item.FindControl 都是編輯模闆中的控件。 如果我們不知道資料對象的資料類型,我們可以通過打斷點在即時視窗中找到資料對象(e.Item.DataItem )的資料類型。 即使視窗在哪裡?菜單欄中調試=》視窗=》即時