如题。
代码如下,也希望能对初学者起到一些启发意义,并请各位指点:public class UTextBox : TextBox
{
//在类里,定义一个委托
public delegate void MyHandler(object sender, EventArgs e);
//定义事件的KEY
private static readonly object MyObj = new object(); //使用这个委托,定义事件
public event MyHandler MyEvent
{
add
{
Events.AddHandler(MyObj, value);
}
remove
{
Events.RemoveHandler(MyObj, value);
}
} //使用事件的方法
private void OnMyMethodHandler(EventArgs e)
{
MyHandler handler = (MyHandler)Events[MyObj];
if (handler != null)
{
handler(this, e);
}
} private void MyClick(object sender, EventArgs e)
{
OnMyMethodHandler(e);
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
base.Render(writer); RenderChildren(writer);//此方法可以将嵌入的控件呈现出来
}
protected override void CreateChildControls()
{
base.CreateChildControls();
Button btn = new Button();
btn.ID = "btn";
btn.Text = "Test"; btn.Click += new EventHandler(TextBox_Change);
Controls.Add(btn);
}
}前台页面测试:
<cc1:UTextBox2 ID="UTextBox2" runat="server" onmyevent="UTextBox2_MyEvent" ></cc1:UTextBox2>
后台:
protected void UTextBox2_MyEvent(object sender, EventArgs e)
{
Response.Write(1111111111111);
}运行后,点击“Test”按钮,但并未显示111111111,只是页面刷新了一下。不知道我的事件哪里没写好,还是其他原因?
代码如下,也希望能对初学者起到一些启发意义,并请各位指点:public class UTextBox : TextBox
{
//在类里,定义一个委托
public delegate void MyHandler(object sender, EventArgs e);
//定义事件的KEY
private static readonly object MyObj = new object(); //使用这个委托,定义事件
public event MyHandler MyEvent
{
add
{
Events.AddHandler(MyObj, value);
}
remove
{
Events.RemoveHandler(MyObj, value);
}
} //使用事件的方法
private void OnMyMethodHandler(EventArgs e)
{
MyHandler handler = (MyHandler)Events[MyObj];
if (handler != null)
{
handler(this, e);
}
} private void MyClick(object sender, EventArgs e)
{
OnMyMethodHandler(e);
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
base.Render(writer); RenderChildren(writer);//此方法可以将嵌入的控件呈现出来
}
protected override void CreateChildControls()
{
base.CreateChildControls();
Button btn = new Button();
btn.ID = "btn";
btn.Text = "Test"; btn.Click += new EventHandler(TextBox_Change);
Controls.Add(btn);
}
}前台页面测试:
<cc1:UTextBox2 ID="UTextBox2" runat="server" onmyevent="UTextBox2_MyEvent" ></cc1:UTextBox2>
后台:
protected void UTextBox2_MyEvent(object sender, EventArgs e)
{
Response.Write(1111111111111);
}运行后,点击“Test”按钮,但并未显示111111111,只是页面刷新了一下。不知道我的事件哪里没写好,还是其他原因?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货