asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

Asp.net 用户控件添加自定义事件


发布日期:2021年02月18日
 
Asp.net 用户控件添加自定义事件
对于用户控件的使用有这样的特点就是当我们要求一个用户控件要实现特定的功能的时候他可以在整个网站里面的页面上任意拖拽但是他的功能相对固定也就是说在ascx文件中的代码是写死的一旦要实现其他功能就要将整个用户控件重做这里介绍一种方法要用户控件的可重复使用性更强

前台代码

就是一个简单的登录控件

<%@ Control Language=C# AutoEventWireup=true CodeFile=LoginControlascxcs Inherits=LoginControl %>

<table border=>

<tr>

<td colspan= >

<strong>用户登录</strong></td>

</tr>

<tr>

<td >

用户名</td>

<td colspan=>

<asp:TextBox ID=txtName runat=server ValidationGroup=group></asp:TextBox></td>

</tr>

<tr>

<td >

密码</td>

<td colspan= >

<asp:TextBox ID=txtPassword runat=server TextMode=Password></asp:TextBox></td>

</tr>

<tr>

<td colspan= >

<asp:RequiredFieldValidator ID=RequiredFieldValidator runat=server ControlToValidate=txtName

ErrorMessage=用户名为必填项 ValidationGroup=group></asp:RequiredFieldValidator></td>

</tr>

<tr>

<td >

<asp:Button ID=Button runat=server Text=Button /></td>

<td >

<asp:Button ID=Button runat=server OnClick=Button_Click Text=登录 ValidationGroup=group

Width=px /></td>

<td >

<asp:Button ID=Button runat=server Text=登出 Width=px /></td>

</tr>

</table>

用户控件后台代码

public event EventHandler Authenticate;

protected void Page_Load(object sender EventArgs e)

{

}

public void Button_Click(object sender EventArgs e)

{

if (Authenticate!=null)

{

Authenticate(this new EventArgs())//如果用户自定义添加了事件则该button会按指定的事件进行而不会走默认事件相反会执行默认事件

}

else

{

string connectString = Server= ; DataBase=Test ; uid=sa ; pwd=cosecose ;

string selectString = Select * from userInfo where Name= + txtNameTextToString() + and Password= + txtPasswordTextToString() + ;

SqlConnection conn = new SqlConnection(connectString)

connOpen()

SqlCommand cmd = new SqlCommand(selectString conn)

SqlDataAdapter sda = new SqlDataAdapter()

sdaSelectCommand = cmd;

DataTable dt = new DataTable()

sdaFill(dt)

if (dtRowsCount ==

{

ResponseWrite(<script>windowalert(密码或用户名输入错误!)</script>

}

else

{

ResponseWrite(<script>windowalert(恭喜您登录成功!)</script>

}

connClose()

}

}

主页面代码

protected void Page_Load(object sender EventArgs e)

{

Button btn =(Button)LoginControlFindControl(Button

btnClick += new EventHandler(Show)

//提供第一种方法通过findcontrol方法找到控件然后对控件的事件进行添加

LoginControlAuthenticate += new EventHandler(Show)

//提供第二种方法直接绑定上自己的定义事件

}

protected void Show(object sender EventArgs e)

{

FormsAuthenticationSignOut()

ResponseWrite(<script>windowalert(用户已经成功退出!)</script>

上一篇:ASP.Net的Application

下一篇:用asp.net还原与恢复sqlserver数据库