本篇將開始介紹如自定義數據綁定控件,這裡感謝很多人的支持,有你們的支持很高興.
這裡首先需要大家熟悉asp.net模板控件的使用,還有自定義模板控件.因為數據綁定控件多是基於模板控件的.
一.回顧
如果你使用過asp.net內置的數據控件(如DataList,Repeater),你一定會這麼做
1.設置數據源 DataSource屬性
2.調用數據綁定 DataBind方法
3.在控件的不同模板內使用綁定語法顯示數據
這三步應該是必須要做的
其他更多的
你可能需要對綁定的數據進行統一的一些操作(如時間格式化),或者對數據的某一項進行操作(對某一項進行格式化),或者需要觸發模板控件內的一些事件(如databound事件).
根據上面的一些需求,我們需要這樣做
1.對綁定的數據進行統一的一些操作: 為數據綁定控件定義Item項(表示列表的一條數據, 如Repeater的RepeaterItem)
2.對數據的某一項進行操作: 因為定義了Item項,那你肯定需要一個ItemCollection集合,其可以方便的為你檢索數據
3.因為定義了RepeaterItem,原先的EventArgs和CommandEventArgs已經無法滿足需求,我們需要自定義委托及其一個為控件提供數據的的ItemEventArgs
上面三點有些並非必須定義,如第2點,還需要根據具體需求來定.但一個完成的控件是需要的.
二.為數據控件做好准備
這次的demo為不完整的Datalist控件,來源還是MSDN的例子,我們命名為TemplatedList,此控件未定義ItemCollection集合
好了,根據上面的分析我們先為TemplatedList提供項和委托及為事件提供數據的幾個EventArgs,請看下面類圖
1.TemplatedListCommandEventArgs為Command事件提供數據
2.TemplatedListItemEventArgs為一般項提供數據
3.TemplatedListItem表示TemplatedList的項