天天看點

DataList控件的運作原理和在C#中用到的語句

  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 )的資料類型。     即使視窗在哪裡?菜單欄中調試=》視窗=》即時