Asp.net .NET如何避免在Textbox TextChanged事件后取消按钮单击事件

Asp.net .NET如何避免在Textbox TextChanged事件后取消按钮单击事件,asp.net,vb.net,events,cancellation,autopostback,Asp.net,Vb.net,Events,Cancellation,Autopostback,我有一个使用[OnTextChange]event VB.NET的文本框,必须使用[AutoPostBack=True]从数据库中检查自身值: <asp:TextBox ID="Item1" TabIndex="7" runat="server" AutoPostBack="True"></asp:TextBox> 情况是: 在文本框中输入任何内容,但尚未在文本框外聚焦。 单击与该文本框形式相同的任何按钮。 不想要的结果: 该按钮的[点击]事件已取消,仅激发了OnTex

我有一个使用[OnTextChange]event VB.NET的文本框,必须使用[AutoPostBack=True]从数据库中检查自身值:

<asp:TextBox ID="Item1" TabIndex="7" runat="server" AutoPostBack="True"></asp:TextBox>
情况是:

在文本框中输入任何内容,但尚未在文本框外聚焦。 单击与该文本框形式相同的任何按钮。 不想要的结果:

该按钮的[点击]事件已取消,仅激发了OnTextChange事件。 我必须再按一下那个按钮。 通缉结果:

触发事件OnTextChanged后,将触发按钮的事件[点击] 我在谷歌搜索过,知道这是.NET事件的一个问题。但仍然没有找到任何有用的解决方案


请提供帮助。

如果您正在编写web应用程序,TextBox CaseValidation有一个属性,您可以使用它, 或
您可以在按钮单击功能中使用文本验证,而不是在textchanged属性中使用文本验证。我刚刚遇到了相同的问题。按钮事件未触发的原因是,在处理文本更改事件的子例程中,我必须重新加载页面。我结合了几种方法,提出了这个似乎有效的解决方案:1我在页面上添加了一个隐藏字段,其中存储了按钮是否被单击的状态,初始值为false;2我在按钮中添加了OnClientClick,该按钮调用javascript函数将隐藏字段值设置为true;3在处理文本更改事件的代码隐藏子例程中,我在使用Response.Redirect重新加载页面之前检查隐藏字段的值。以下是代码片段:

<asp:HiddenField ID="addtocarthiddenfield" runat="server" Value="false" ClientIDMode="Static" />

OnClientClick="setAddCartClicked();"

<script type="text/javascript">
        function setAddCartClicked() {
            document.getElementById('addtocarthiddenfield').value = 'true';
        }
    </script>

Dim addtocart As Boolean = addtocarthiddenfield.Value


If addtocart = False Then
    Response.Redirect("MyAccount_Favorites.aspx")
End If

我希望这能有所帮助。

您使用的是ASP.Ne WebForms吗?如果是这样的话,你能添加OnClick=MethodName来赢得你的按钮html吗?你试过onblur吗?出于某种原因我没有使用onblur。在这种情况下,我必须使用ContextChange。按钮的事件单击已被TextChange取消,事件单击没有机会触发。