暴露并使用OnTextChange事件处理程序
本文关键字:事件处理 程序 OnTextChange 暴露 | 更新日期: 2023-09-27 18:10:13
相关问题:在自定义文本框上添加自定义OnTextChange事件处理程序
在相关的问题中,我问我如何在我的自定义文本框控件中暴露OnTextChange,我们通过:
public event EventHandler TextChanged
{
add { customTextBox.TextChanged += value; }
remove { customTextBox.TextChanged -= value; }
}
当控件实现时,我正在尝试使用TextChanged事件:
<uc:CustomTextBox ID="customTextBox"
runat="server"
OnTextChanged="CustomTextBox_OnTextChanged">
</uc:CustomTextBox>
在运行时似乎永远不会碰到以下内容:
protected void CustomTextBox_OnTextChanged(System.EventArgs e)
{
// Do something here
}
或打击:
protected void CustomTextBox_OnTextChanged(object sender, EventArgs e)
{
// Do something here
}
我做错了什么,我错过了什么,这是做我在这里想做的一切的最佳方式或常见实践方式吗?
需要设置TextBox的AutoPostBack=True
属性。
如果你正在设计一个web用户控件,然后简单地定义公共属性来设置CustomTextBox
的True/False
值在用户控件的代码后面:
public bool AutoPostBack
{
get
{
return CustomTextBox.AutoPostBack;
}
set
{
CustomTextbox.AutoPostBack = value;
}
}
如果你正在开发一个自定义web控件,那么你可以为自定义重写AutoPostBack
属性。如果你不想自定义AutoPostBack
属性,那么不要重写它。
如果你重写AutoPostBack属性,请调用超类的默认实现。
public override bool AutoPostBack
{
get
{
return base.AutoPostBack;
}
set
{
base.AutoPostBack = value;
}
}
为了让OnTextChanged
触发,您需要在文本框上指定AutoPostBack="true"
。
在ASPX标记中:
<uc:CustomTextBox ID="customTextBox" runat="server" OnTextChanged="CustomTextBox_OnTextChanged" AutoPostBack="true"></uc:CustomTextBox>
在CustomTextBox用户控件的代码后面:
public bool AutoPostBack
{
get
{
//the textbox in the user control
return customTextBox.AutoPostBack;
}
set
{
customTextBox.AutoPostBack = value;
}
}