我正在動態添加一些用戶控件,它們有一個文本框。當文本框中的文本發生更改時,我正在嘗試激發一個事件。TextChanged事件在動態添加用戶控件中的文本框沒有觸發
我的代碼是這樣:
的Default.aspx:
<asp:Panel ID="pnlControls" runat="server"/>
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
MyControl control = (MyControl)LoadControl("Controls/MyControl.ascx");
control.NameField = "Test Name";
pnlControls.Controls.Add(control);
}
MyControl.ascx
個<asp:TextBox ID="txtNameField" runat="server" OnTextChanged="txtNameField_TextChanged" AutoPostBack="true"/>
MyControl.ascx.cs
public string NameField;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostback)
{
txtNameField.Text = NameField;
}
}
protected void txtNameField_TextChanged(object sender, EventArgs e)
{
NameField = txtNameField.Text;
}
這是代碼的簡化版本,其中包含所需要的所有相關零件,使功能工作的要求(據我所知)
但是,txtNameField_TextChanged
函數永遠不會執行。如何在txtNameField
文本更改時執行該功能?
你的意思是NameField沒有價值,如果你改變文本? – tharif 2015-03-31 09:30:51
不,我的意思是'txtNameField_TextChanged'函數永遠不會被調用。 – PTuckley 2015-03-31 09:31:26