zoukankan      html  css  js  c++  java
  • 改变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行代码,就是改变按钮的颜色。看看效果:


    大功告成。

  • 相关阅读:
    又是一个递归的题
    全文检索引擎记录
    处理“System.Web.HttpException: 超过了最大请求长度”
    完整国内城市js级联选择
    多服务器共享session的解决方案之一
    递归求n的阶乘
    面试遇到了 <计算从1到N中1的出现次数>结果悲剧了.
    DropDownList绑定Xml数据的实现
    简单图片上传示例
    C#默认访问修饰符
  • 原文地址:https://www.cnblogs.com/insus/p/3063688.html
Copyright © 2011-2022 走看看