用户控件使用一例
2024-07-21 02:24:26
供稿:网友
用户控件的简单使用例子,做一个用户登陆的用户控件。
用户登陆某个系统是个非常常见的问题,这里笔者想把这样的问题作为一个用户控件来使用,方便各个用户。
1、在工程中新建立一个web用户控件,此时加入的名称为frlogin.ascs。
2、把需要的控件拖放到该web中,比如两个label,两个textbox,一个button分别命名为lblusername,lblpassword,txtusername,txtpassword,btnlogin
3、增加两个textbox的属性代码
public string username
{
get{return this.txtusername.text;}
set{this.txtusername.text=value;}
}
public string password
{
get{return this.txtpassword.text;}
set{this.txtpassword.text=value;}
}
这样就可以在你的用户控件拖放到另一个web页面中时获取或设置他们的值了。
4、添加button事件的代理
先双击你的btnlogin产生相应事件处理函数
private void btnregister_click(object sender, system.eventargs e)
{
}
然后声明事件的代理
public delegate void onregisterclickedhandler(object sender, system.eventargs e);注意此处的签名要正确。
public event onregisterclickedhandler onregisterclicked;
5、修改btnregister_click函数
增加如下代码,即执行代理
if(onregisterclicked!=null)
onregisterclicked(sender,e);
到这里你的用户控件已经定已完成。很简单是吗?因为.net环境已经帮助你完成了很多的后台操作。
6、把frlogin.ascs拖放到你需要引用的页面中,.net已经为你产生了<%@ register tagprefix="uc1" tagname="frlogin" src="frlogin.ascx" %>
<uc1:frlogin id="frlogin1" backcolor="black" runat="server"></uc1:frlogin>,这些都是自动的。这里的缺陷是它并没有帮你在testpage.aspx.cs生成protected frlogin frlogin1;代码,你需要手工添加。注意控件的名称要与html定义中的一致。
7、在initializecomponent()增加事件代理的真正处理函数
this.frlogin1.onregisterclicked+=new reques.frlogin.onregisterclickedhandler(onregisterclicked);
8、处理你的事件
private void onregisterclicked(object sender, system.eventargs e)
{
response.write("user name:"+ this.frlogin1.username+ "password" + this.frlogin1.password);
}
注意此处的签名.
好了,已经完成了,试试看。