使用DataList進行數據的展示時,一般用於多行多列數據的展示
如:
DataList擁有強大的模版特性:
ItemTemplate:一般項模版,該模版會應用多次
AlternatingItemTemplate:交替項模版,該模版會應用多次
FooterTemplate:尾模版,在項模版之后,只應用一次,不能使用Eval綁定
HeaderTemplate:頭模版,在項模版之前,只應用一次,不能使用Eval綁定
SeparatorTemplate:分離模版
SelectedItemTemplate:被選定模版
EditItemTemplate:被編輯模版
操作 |
事件名稱 |
說明 |
編輯 |
EditCommand |
由於DataList不支持雙向綁定,其更新與刪除必須在對應事件中顯式調用數據源控件的Delete和Update方法,並且所有的DeleteParameters和UpdateParameters參數必須指定,同時編輯、取消和更新按鈕都需要在事件編程中設置屬性並調用DataBind方法重新綁定。 |
取消 |
CancelCommand |
|
更新 |
UpdateCommand |
|
刪除 |
DeleteCommand |
|
選擇 |
SelectedIndexChanged |
用於實現就地顯示功能 |
項命令 |
ItemCommand |
自定義操作的按鈕事件 |
項綁定 |
ItemDataBound |
數據項綁定 |
DataList控件與Repeater控件使用起來非常類似,DataList能夠更加靈活的控制顯示的列與行。
接下來我們通過具體的示例來演示如何通過DataList控件進行列表展示的。
示例一:使用DataList進行數據展示
一、先准備一張照片信息表:
二、 新建Web頁面,起名DataListDemo.aspx,然后拖拽上來一個DataList控件:
三、 創建頭模板
四、 創建項模板(自定義的模板,展示數據用,定義成什么樣子,就展現為什么樣子,不會生成額外多余的標簽):
五、 可以在屬性中套用DataList自帶的一些主題:
六、 寫后台綁定代碼,實現數據的綁定,在頁面第一次加載時候開始綁定數據:
展示效果如下:
示例二、 使用DataList進行數據刪除
一、 在頁面刪除按鈕上添加CommandName=”delete”、CommandArgument綁定的參數,為OnClientClick事件添加一個js代碼,用來實現彈出確認框:
二、 由於CommandName為delete,所以會觸發DataList的OnDeleteCommand事件,選擇DataList的事件,新建一個DeleteCommand事件:
三、 在DeleteCommand事件中加入刪除的代碼:
點擊按鈕實現刪除
在DataList控件中點擊服務器控件,如果把控件的CommandName設置為delete,會觸發DeleteCommand事件,我們可以根據需要設置不同的CommandName,從而實現不同的事件處理。
問:DataList控件與Repeater控件的區別是什么?
DataList控件:一行可以有多條記錄,就像圖片列表一樣;分頁功能需要手寫。
Repeater 控件使用數據源返回的一組記錄呈現只讀列表。Repeater 控件不指定內置布局。可以使用模板創建 Repeater 控件的布局。
補充:
DataList 控件是從 WebControl 類中派生的,而 Repeater 控件是從 Control 類中派生的。 WebControl 類包含許多美學方面的zhuan屬性,例如 BackColor、shuForeColor、CssClass、BorderStyle 等。 這意味着如果使用 DataGrid 和 DataList,就可以通過它們從 WebControl 類中繼承的屬性指定樣式設置。 而 Repeater 沒有任何這樣的樣式屬性。 對 Repeater 輸出的任何可視設置都必須在 Repeater 的模板中指定。
DataList自身會被解析為table,其中的每一行會被解析為tr-td
Repeater則只是重復模板中的內容,這也是為什么repeater沒有提供ItemStyle,SelectItemTemplate這些模板和樣式控制的原因