首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextChanged不开火

TextChanged不开火
EN

Stack Overflow用户
提问于 2013-06-03 17:52:17
回答 1查看 1.1K关注 0票数 0

当我按下“添加更多”按钮时,我试图生成文本框,所以这是onclick的代码。

代码语言:javascript
复制
protected void Add_TextBoxes(object sender, EventArgs e)
        {
            int index =  int.Parse(ViewState["pickindex"].ToString());
            TextBox MyTextBox = new TextBox();
            MyTextBox.ID = "tbautogenerated"+index.ToString();
            MyTextBox.Text = "tbautogenerated" + index.ToString();
            MyTextBox.Width= 250;
            MyTextBox.MaxLength = 128;
            MyTextBox.Attributes.Add("runat", "server");
            MyTextBox.CausesValidation = false;
            MyTextBox.AutoPostBack = true;
            MyTextBox.TextChanged += new EventHandler(MyTextBox_TextChanged);
            picktexts.Controls.Add(MyTextBox);

        }

void MyTextBox_TextChanged(object sender, EventArgs e)
    {
        TextBox MyTextBox = sender as TextBox;
    }

但是当我更改文本框时,textChanged就不能工作了!怎么了?

HTML代码

代码语言:javascript
复制
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <div id="picktexts" runat="server">
                    <asp:TextBox ID="txtAdress" runat="server" MaxLength="128" Width="250" />
                    <asp:RequiredFieldValidator ControlToValidate="txtAdress" Display="Dynamic" ID="rfvAddress" Text="* Required" runat="server" />
                    <asp:Button ID="bt_addtxtbox" runat="server" Text="Add more" OnClick="Add_TextBoxes"  CausesValidation="false" />
                    </div>
                    </ContentTemplate>
                    </asp:UpdatePanel>
EN

回答 1

Stack Overflow用户

发布于 2013-06-03 18:12:25

我认为事件处理程序在帖子之间丢失了。按照ASP.NET的工作方式,每次回发页面时,都会再次实例化所有对象,并从ViewState中恢复它们的状态。通常,在aspx中声明的控件将通过标记中的声明与事件重新组合,这里的情况并非如此。

因此,尝试在页面加载期间再次关联事件处理程序。如下所示:

代码语言:javascript
复制
void Page_Load (object sender, EventArgs e)
{
    foreach (Control c in picktexts.Controls)
    {
        ((TextBox)c).TextChanged += new EventHandler(MyTextBox_TextChanged);
    }
}

看看能不能用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16902801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档