关键是在ascx文件中定义一个事件:
public delegate void DateChangedEventHandler(object sender, DateChangedEventArgs e);
public event DateChangedEventHandler DateChanged;
先定义一个委托和事件,如果有参数再定义参数类,
public sealed class DateChangedEventArgs : EventArgs
{
public bool FromCalendar;
public DateTime OldDate;
public DateTime NewDate;
}
最后定义事件处理程序:
protected virtual void OnDateChanged(DateChangedEventArgs e)
{
if (DateChanged != null)
DateChanged(this, e);
}然后在调用它的aspx文件里调用...OnDateChanged="as()".然后自己写as()方法就可以了.
public delegate void DateChangedEventHandler(object sender, DateChangedEventArgs e);
public event DateChangedEventHandler DateChanged;
先定义一个委托和事件,如果有参数再定义参数类,
public sealed class DateChangedEventArgs : EventArgs
{
public bool FromCalendar;
public DateTime OldDate;
public DateTime NewDate;
}
最后定义事件处理程序:
protected virtual void OnDateChanged(DateChangedEventArgs e)
{
if (DateChanged != null)
DateChanged(this, e);
}然后在调用它的aspx文件里调用...OnDateChanged="as()".然后自己写as()方法就可以了.
----------------------------------------
<%@Page Language="C#" debug=true%>
<%@Register TagPrefix="webdiyer" TagName="userctrl" Src="usercontrolevent.ascx"%>
<script runat="server">
void Page_Load(Object sender,EventArgs e)
{
if(!Page.IsPostBack){
testctrl.SelectedIndex=2;
}
}void ChangeUser(object src,EventArgs e){
box.Text=testctrl.SelectedItem.Value;
}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer制造:) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<webdiyer:userctrl runat="server" id="testctrl" OnUserChanged="ChangeUser"/>
<br>
<asp:TextBox runat="server" id="box"/>
</form>
</BODY>
</HTML>
usercontrolevent.ascx
------------------------------------------
<%@Control Language="C#"%>
<script runat="server">
public event EventHandler UserChanged;public ListItem SelectedItem{
get{return userlist.SelectedItem;}
}public int SelectedIndex{
get{return userlist.SelectedIndex;}
set{userlist.SelectedIndex=-1;
userlist.SelectedIndex=value;
}
}protected virtual void OnUserChanged(EventArgs e){
if(UserChanged!=null){
UserChanged(this,e);
}
}void ChangeUser(object src,EventArgs e){
OnUserChanged(e);
}
</script>
<asp:DropDownList runat="server" id="userlist" AutoPostBack=true OnSelectedIndexChanged="ChangeUser">
<asp:ListItem>guest</asp:ListItem>
<asp:ListItem>new user</asp:ListItem>
<asp:ListItem>user2</asp:ListItem>
<asp:ListItem>新用户</asp:ListItem>
<asp:ListItem>管理员</asp:ListItem>
</asp:DropDownList>