我有一个包含文本框的用户控件。用户控件本身包含在另一个用户控件(父级)中。
当文本被更改时(OnTextChanged事件)我需要一种方法来告诉父用户控件。
所以我会有以下几点:
<uc1:MyUserControl OnChanged="DoSomething" runat="server" ID="MyUserControl1">
并且当文本框的OnTextBoxChanged事件触发时,OnChanged事件处理程序将触发。
任何想法或线索?
谢谢!
答案 0 :(得分:1)
假设一个名为ControlTextBox的文本框,我的Web用户控件后面有以下代码:
public partial class MyUserControl : System.Web.UI.UserControl
{
public event EventHandler Changed;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ControlTextBox_Changed(object sender, EventArgs e)
{
OnChanged();
}
protected virtual void OnChanged()
{
if (Changed != null)
Changed(this, EventArgs.Empty);
}
}
以及ascx文件中的以下内容:
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="MyUserControl.ascx.cs" Inherits="MyUserControl" %>
<asp:TextBox runat="server" ID="ControlTextBox"
OnTextChanged="ControlTextBox_Changed" AutoPostBack="true"/>
然后你上面给出的代码会被正确解雇。