昨晚有在論壇看到一帖,手上的工作一直忙到現在,Insus.NET現在抽點時間嘗試實現它。
Insus.NET沒有使用數據庫作為數據源,而是使用List<T>作為數據源。因此你在這篇博文中學到很多有關泛型的知識。另外Insus.NET使用CheckBoxList來替代多頁面,讓用戶選擇CheckBoxList的選項將會給Repeater有多值顯示,也就是綁定多個銨鈕。
創建一個對象,它將用來存儲數據源。這個對象有三個屬性[ColourSystem],[ColourName]和[RGB]

using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// Summary description for Colour /// </summary> namespace Insus.NET { public class Colour { private string _ColourSystem; private string _ColourName; private string _RGB; public string ColourSystem { get { return _ColourSystem; } set { _ColourSystem = value; } } public string ColourName { get { return _ColourName; } set { _ColourName = value; } } public string RGB { get { return _RGB; } set { _RGB = value; } } public Colour() { // // TODO: Add constructor logic here // } public Colour(string colourSystem, string colourName,string rgb) { this._ColourSystem = colourSystem; this._ColourName = colourName; this._RGB = rgb; } } }
對象創建好之后,我們淮備一些數據來填充它。

private List<Colour> OrgDataSource() { List<Colour> oData = new List<Colour>(); oData.Add(new Colour("Warm color", "red", "ff0000")); oData.Add(new Colour("Warm color", "orange", "ffa500")); oData.Add(new Colour("Warm color", "yellow", "ffff00")); oData.Add(new Colour("Cool color", "green", "008000")); oData.Add(new Colour("Cool color", "blue", "0000ff")); return oData; }
接下來,我們創建一個網頁,如Default.aspx,然后拉一個CheckBoxList控件入網頁中:
現在,我們需要從上面准備好的對象中過濾一些數據來綁定至這個CheckBoxList控件,從List<Colour>泛型中過濾數據:
過濾好數據,我們就可以綁定給CheckBoxList控件。
到這里,你學到什么?學到了過濾List<T>的數據,還學會了把List<T>綁定至CheckBoxList控件內。
跟着,我們在Default.aspx網頁內,寫Repeater控件, 控件內綁定一個Button按鈕:
由於這個Repeter控件是隨參數(ColourSystem)不同,而顯示不同的數據,所在我們需要寫一個方法,去過濾List<Colour> OrgDataSource()
下面,我們還要寫一個方法,就是想辦法把CheckBoxList控件選項選中的存起來。
現在,我們需要對CheckBoxlist控件選擇時,有對Repeater控件數據綁定異動,在Default.aspx網頁上,在CheckBoxList控件添加一個屬性和一個事件:
我們在OnSelectedIndexchanged事件中,綁定Repeater控件:
看到否? List<Colour> 泛型綁定給Repeater控件,相信你也會了。看看效果吧:
寫到這里,已經接近尾聲了,也是最重要的部分,怎樣寫呢,要求是用戶點擊銨鈕時,能改變銨鈕的顏色,其實這個也是Repeater控件內銨鈕事件異動而已。
我們在Default.aspx網頁的Repeater控件,添加一個事件:
上圖中,即是說把Reaper控件的Button銨鈕的Click事件, InsusButton_Click:
大功告成。