C# asp.net中带文本框的自动回发
我有下面的aspx代码C# asp.net中带文本框的自动回发,c#,asp.net,events,textbox,autopostback,C#,Asp.net,Events,Textbox,Autopostback,我有下面的aspx代码 <asp:TextBox ID="uname" runat="server" AutoPostBack="True" ontextchanged="uname_TextChanged"></asp:TextBox> 根据我对自动回邮的假设,如果我在文本框中写入任何内容,回邮将会发生,但现在它也不会发生,原因可能是什么 通常,一个事件(如控件)有多个事件处理程序,如果发生自动回发,将触发哪个事件 声明只有当控件失去焦点
<asp:TextBox ID="uname" runat="server" AutoPostBack="True"
ontextchanged="uname_TextChanged"></asp:TextBox>
根据我对自动回邮的假设,如果我在文本框中写入任何内容,回邮将会发生,但现在它也不会发生,原因可能是什么
- 通常,一个事件(如控件)有多个事件处理程序,如果发生自动回发,将触发哪个事件
还要解决问题的第二部分:回发期间引发的事件由ASP.NET framework在回发的初始化阶段决定。例如,如果表单值中包含的文本框文本与ViewState中存储的文本不同,则会引发TextChanged事件。这解释了为什么即使自动回发是由丢失焦点启动的,也会调用TextChanged处理程序。通过将ontextchanged更改为ontextchanged进行尝试,然后重试。在文本框中输入文本后,尝试在页面上单击鼠标,确保其正常工作。尝试将ontextchanged更改为ontextchanged,然后重试。在文本框中输入文本后,尝试在页面上单击鼠标,确保其正常工作。根据我的假设,由于自动回发,您说的是
。如果我在文本框中写入任何内容,将发生回发。
这是错误的。当文本框中的焦点熄灭时,它将触发文本更改事件。因此,当您键入内容并按Tab
键时,只会触发TextChanged
事件
如果要在键入内容时触发TextChanged
事件,则应使用OnKeyDown事件从javascript调用该事件。请参见下面的代码示例:
<asp:TextBox ID="uname" runat="server" AutoPostBack="True"
OnKeyDown="TextChanged(this)" OnTextChanged="uname_TextChanged"></asp:TextBox>
<script type="text/javascript">
function TextChanged(control) {
$(control).change();
}
</script>
Q:如果发生自动回邮,将触发哪个事件?
回答:通常,对于在post服务器之间更改内容的所有事件,自动回发需要。但在你为它定义事件之前,它不会被触发
例如,如果将DropDownList的AutoPostBack属性设置为true,并且如果未指定OnSelectedIndexChanged事件,则不会触发此事件。但当您更改值时,页面将被发回
在文本框、复选框、单选按钮等情况下也会发生同样的情况
希望这足够理解 您所说的根据我的假设,由于自动回发,如果我在文本框中写入任何内容,将发生回发
这是错误的。当文本框中的焦点熄灭时,它将触发文本更改事件。因此,当您键入内容并按Tab
键时,只会触发TextChanged
事件
如果要在键入内容时触发TextChanged
事件,则应使用OnKeyDown事件从javascript调用该事件。请参见下面的代码示例:
<asp:TextBox ID="uname" runat="server" AutoPostBack="True"
OnKeyDown="TextChanged(this)" OnTextChanged="uname_TextChanged"></asp:TextBox>
<script type="text/javascript">
function TextChanged(control) {
$(control).change();
}
</script>
Q:如果发生自动回邮,将触发哪个事件?
回答:通常,对于在post服务器之间更改内容的所有事件,自动回发需要。但在你为它定义事件之前,它不会被触发
例如,如果将DropDownList的AutoPostBack属性设置为true,并且如果未指定OnSelectedIndexChanged事件,则不会触发此事件。但当您更改值时,页面将被发回
在文本框、复选框、单选按钮等情况下也会发生同样的情况
希望这足够理解 你试过戴德吗
<asp:UpdatePanel runat="server" ID="up1">
<ContentTemplate>
<asp:TextBox ID="uname" runat="server" AutoPostBack="True"
OnKeyDown="TextChanged(this)" OnTextChanged="uname_TextChanged"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="uname" />
</Triggers>
</asp:UpdatePanel>