zoukankan      html  css  js  c++  java
  • 有效利用ASP.NET用户控件的事件委托

    当你在开发ASP.NET网站,对用户控件一定并不陌生。当多个页面都使用相同或相似的设计时,使用用户控件可以提高开发效率!

    但往往你会因为用户控件有少许不同的要求而感觉到烦恼。比如说在开发后台处理页面的时候常常遇到的用户搜索器:

    在多个页面都会要求用到用户搜索,有时候它会用于修改用户的基本资料,有时候它会用来查询用户订单,有时候它会查询用户论坛的信息。多个页面用的都 是同一个功能的搜索器,但当按下“选择”键的时候,它们要求实现不同的功能。这时候,你可以使用用户控件的事件来实现这个功能。

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        onrowcommand="GridView1_RowCommand" >
      <Columns >

           ...................

           <asp:TemplateField>
              <ItemTemplate>

                 <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Select" CommandArgument='<%#Eval("ID")%>'>

                        选择
                  </asp:LinkButton>
              </ItemTemplate>
          </asp:TemplateField>

     </Columns>

    </asp:GridView>

    首先,你先在控件里面设定事件对象CommandEventHandler,在GridView1的事件被激发时,直接调用CommandEventHandler处理方法

    public partial class UserControl : System.Web.UI.UserControl
    {

        public event GridViewCommandEventHandler CommandEventHandler;


        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (CommandEventHandler != null)
                CommandEventHandler(sender, e);
        }

       ................

    }

    在页面调用用户控件时,绑定用户控件的CommandEventHandler的处理方法

     <ascx:UserControl ID="UserControl1" runat="Server" OnCommandEventHandler="UserControl_OnCommanEventHandler" />   

       protected void UserControl_OnCommanEventHandler(object sender, GridViewCommandEventArgs e)
        {

             if(e.CommandName=="Select")

             {

                   ...................
                   //此时,你就可以根据不同的功能要求而实现不同的操作了。

             }
        }

    总结一下,适当地利用ASP.NET用户控件的属性和事件,可以更有效地提高用户控件的可复用性,减少不必要的代码,提高页面开发的工作效率,你还可以使用自定义事件实现有效的开发,使用户控件不受控件事件的拘束!

    对 JAVA 开发有兴趣的朋友欢迎加入QQ群:174850571 共同探讨!
    对 .NET  开发有兴趣的朋友欢迎加入QQ群:162338858 共同探讨 !

  • 相关阅读:
    Ecshop屏幕wap
    SQLite命令
    初识SQLite
    last_insert_id()
    php中的全局变量global(低级错误啊)
    在搜索框加入语音搜索
    解压zip文件出现bash:unzip:commond not found
    DataView.RowFilter使用
    设计自己的模板引擎(一)模板替换中的嵌套循环处理
    没完没了的Cookie,读懂asp.net,asp等web编程中的cookies 
  • 原文地址:https://www.cnblogs.com/leslies2/p/1936703.html
Copyright © 2011-2022 走看看