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
}
我做错了什么?
答案 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)
您可以改为使用LinkButton
和OnRowCommand
:
.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
}
}