改變Repeater控件中按鈕顏色


昨晚有在論壇看到一帖,手上的工作一直忙到現在,Insus.NET現在抽點時間嘗試實現它。


Insus.NET沒有使用數據庫作為數據源,而是使用List<T>作為數據源。因此你在這篇博文中學到很多有關泛型的知識。另外Insus.NET使用CheckBoxList來替代多頁面,讓用戶選擇CheckBoxList的選項將會給Repeater有多值顯示,也就是綁定多個銨鈕。

 創建一個對象,它將用來存儲數據源。這個對象有三個屬性[ColourSystem],[ColourName]和[RGB]

Insus.NET.Colour
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;
        }
    }
}


對象創建好之后,我們淮備一些數據來填充它。

View Code
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控件,添加一個事件:


去Default.aspx.cs寫上面的事件:


上圖中,即是說把Reaper控件的Button銨鈕的Click事件, InsusButton_Click:

 

第110行代碼,就是改變按鈕的顏色。看看效果:


大功告成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM