用户自定义控件(评论的级别)

//自定义控件.cs页

public partial class Controls_StarRank : System.Web.UI.UserControl
{
    //定义字段
    int _rank;

    //为自定义控件添加一个事件
    public event EventHandler OnValueChanged;

    //为自定义控件添加一个属性
    public int Rank
    {
        get { return _rank; }
        set
        {
            _rank = value;
            if (OnValueChanged != null)
            {
                OnValueChanged(this, new EventArgs());
            }
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        StarInit();
    }

    public void StarInit()
    {
        //实例化一个长度为5的ImageButton数组,用来存放5颗星
        ImageButton[] ibtnArray = new ImageButton[5];

        //初始化一个容器Panel,用来存放ImageButton控件数组
        Panel pl = new Panel();

        //初始化ImageButton数组中的控件,给他们的ImageUrl属性赋值
        for (int i = 0; i < 5; i++)
        {
            ibtnArray[i] = new ImageButton();

            //动态生成服务器控件事件的语法
            ibtnArray[i].Click += new ImageClickEventHandler(ImageButton_Click);
            ibtnArray[i].ID = "ibtn" + i.ToString();
            ibtnArray[i].ImageUrl = "../images/v2_gx_hxx2.gif";

            pl.Controls.Add(ibtnArray[i]);
        }

        //将容器控件添加到页面Page上去
        this.Controls.Add(pl);
    }


    protected void ImageButton_Click(object sender, ImageClickEventArgs e)
    {
        //找到当前控件,知道当前点击的是哪个控件
        ImageButton ibtnCurrent = sender as ImageButton;

        //找到当前控件的ID
        int ibtnCurrentId = int.Parse(ibtnCurrent.ID.ToString().Substring(4));

        Panel pl = ibtnCurrent.Parent as Panel;

        ImageButton[] ibtnStar = new ImageButton[5];

        for (int i = 0; i < 5; i++)
        {
            //找到需要控制的5个ImageButton(根据ID)
            ibtnStar[i] = pl.FindControl("ibtn" + i.ToString() + "") as ImageButton;

            if (i <= ibtnCurrentId)
            {
                ibtnStar[i].ImageUrl = "../images/v2_gx_hxx1.gif";
            }
            else
            {
                ibtnStar[i].ImageUrl = "../images/v2_gx_hxx2.gif";
            }
        }
        Rank = ibtnCurrentId + 1;
    }
}

 

//调用自定义控件.cs页
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        StarRank1.OnValueChanged += new System.EventHandler(this.userControl11_OnValueChanged);
    }
    public void userControl11_OnValueChanged(object sender, EventArgs e)
    {
        this.TextBox1.Text= StarRank1.Rank.ToString();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值