<%--兼容IE7 必须放在 head 的第一行--%>
独上高楼网站
  • 给自定义控件(Web Control)添加事件的几种方法
  • 写自定义控件已经好久了,也有几个用得时间比较长的,但是对于“事件”一直是比较模糊,没有很详细的理解。
        
        最近升级分页控件,由于原来使用的是VB.net(在VB.net里面添加一个事件是比较容易的),现在想改用C#,而原来的方法又写得比较笨拙,想换一个更简洁一点的方法,所以不得不重新认识一下事件。看了几遍《道不远人深入解析asp.net2.0控件开发》居然没有看懂,可能是自己太笨了吧。又找到了自定义分页控件开发 看了几遍,还是比较迷糊,最后把《自定义分页控件开发》 里提供的代码down下来看了一下,终于有点明白了。

        先举一个简单的例子吧,我们建立一个复合控件,在CreateChildControls()里面添加两个控件,一个是Label,一个是LinkButton。我们的目的是要给自定义控件加一个事件,以便可以控制Label的Text属性。

        1、内部事件。
        这个好像是我起的名称,就是只在自定义控件的内部相应的事件,使用控件的页面不用相应相关的事件。具体一点就是要在自定义控件内部,在单击LinkButton的时候修改Label的值。       编写好这段代码,然后把控件拖拽到页面里面里进行测试,运行后点击LinkButton,我们可以看到页面已经提交了,但是什么变化也没有,恩,我们还没有些事件呢。现在我们就给LinkButton加一个Click的事件。

    public class EventTest : WebControl, INamingContainer  
        
    {
    protected override void CreateChildControls()
            
    {
                Label lbl 
    = new Label();
                lbl.ID 
    = "lbl";
                
    this.Controls.Add(lbl);
                
    this.Controls.Add(new LiteralControl("
    "));
                LinkButton btn 
    = new LinkButton();
                btn.ID 
    = "btn";
                btn.Text 
    = "复合控件的事件测试";
                
    this.Controls.Add(btn);
    • 与本文主题相关的文章