有效利用ASP.NET用户控件的事件委托
来源:互联网 发布:西安爱知中学怎么样 编辑:程序博客网 时间:2024/05/18 02:34
当你在开发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用户控件的属性和事件,可以更有效地提高用户控件的可复用性,减少不必要的代码,提高页面开发的工作效率,你还可以使用自定义事件实现有效的开发,使用户控件不受控件事件的拘束!
- 有效利用ASP.NET用户控件的事件委托
- Asp.net利用事件委托,实现用户控件中的行为触发所在页面的处理函数
- Asp.net用户控件和委托事件
- asp.net 用户控件中的委托事件SelectedIndexChanged
- ASP.NET用户控件事件的定义和实践--C#里的委托和事件实现Observer
- ASP.NET 动态加载用户控件 通过委托响应onclick事件
- 用户控件 委托事件
- 用户控件 委托事件
- 利用委托给用户控件添加事件(转)
- asp.net页面装载用户控件时的事件顺序
- ASP.NET用户控件事件的定义和实践
- ASP.NET用户控件返回事件的方法
- ASP.NET 中页面获取所用用户控件的事件
- ASP.NET用户控件事件的定义和实践
- ASP.NET用户控件返回事件的方法
- asp.net委托事件
- 关于asp.net用户控件 事件丢失
- asp.net用户控件事件处理
- 严重推荐一个介绍HMTL5的网页,很棒!
- poj 1679 The Unique MST
- C++里的回调
- Silverlight使用小结
- Android 內核、啟動信息 的大致分析
- 有效利用ASP.NET用户控件的事件委托
- SZNOI-Pack 装箱问题 题解
- 与LR作者Robert Green交流之后····
- 新建文章17discount ghds iv
- Qt 中文乱码解决
- 图形编辑软件
- [VB.Net]获取对象的指针及结构体与字节数组间的相互转化
- WritePrivateProfileString() 用法
- 关于fgetcsv ,二进制csv文件得不得到中文字符