TextBox_TextChanged事件未在c#中触发

时间:2017-04-03 09:24:36

标签: c#

DOB_TextChanged事件未触发。我的代码是,

Aspx代码

<asp:TemplateField HeaderText="DOB">
<EditItemTemplate>
  <asp:TextBox ID="DOB" CssClass="datepick" runat="server" AutoPostBack="true" 
               OnTextChanged="DOB_TextChanged"></asp:TextBox>
</EditItemTemplate>
 </asp:TemplateField>

代码背后,

protected void DOB_TextChanged(object sender, EventArgs e)
{
    //mycode
}
我做错了什么?

3 个答案:

答案 0 :(得分:0)

你必须检查一件事.. 转到到aspx (设计)页面。选择按钮。然后单击F4(属性)。你必须去活动区域。在这里,检查是否正确给出了TextChanged事件,就像在服务器页面中一样。

答案 1 :(得分:0)

只是一个简单的代码

 <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    <br />
    <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
    <br />

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("button_click event raised");
    }

    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
         Response.Write("text_changed event raised : "+ TextBox1.Text);
    }

设置文本框属性AutoPostBack = True,只有在文本更改后控件退出TextBox时它才会起作用。如果文本相同,则不会引发事件。

答案 2 :(得分:0)

您可以改为使用LinkButtonOnRowCommand

.aspx的

<EditItemTemplate>
    <asp:LinkButton ID="test" CommandName="YourCommandName" runat="server">Test</asp:LinkButton>

</EditItemTemplate>

代码隐藏:

protected void Item_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "YourCommandName")
    {
         //to do
    }
}
相关问题