【问题标题】:ASP.NET Button Click is not working on first click when Textbox AutoPostBack is True当文本框 AutoPostBack 为 True 时,ASP.NET 按钮单击在第一次单击时不起作用
【发布时间】:2020-02-23 11:17:01
【问题描述】:

我有三个文本框和一个按钮。这是我的问题:

我在文本框中使用autopostback="true",我输入了一些值,但在第一次单击按钮后不起作用。然后我再次点击,第二次点击正在工作。我在浏览器上查看了 F12 开发者工具,没有错误。当我设置autopostback="false" 时,按钮点击没有任何问题。

我想使用autopostback="true",因为它对我有帮助。我认为有一个焦点问题,因为当我点击文本框而不是点击按钮时,按钮适用于autopostback="true"

你对解决这个问题有什么想法吗?所有控件都在服务器端工作。

<asp:Textbox ID="Name" runat="server" ValidationGroup="myval" AutoPostBack="true"></asp:Textbox>
<asp:Textbox ID="Surname" runat="server" ValidationGroup="myval" AutoPostBack="true"></asp:Textbox>
<asp:Textbox ID="City" runat="server" ValidationGroup="myval" AutoPostBack="true"></asp:Textbox>
<asp:Button ID="send_btn" runat="server Text="Check and Send" OnClick="send_btn_Click" ValidationGroup="myval"></asp:Button>

【问题讨论】:

  • 这是因为一旦焦点离开文本框,TextChanged 处理程序就会触发;将 AutoPostBack 设置为 true 会连接一些客户端脚本以在文本框失去焦点时调用 __doPostback。这使得它看起来像按钮(或任何其他控件)处理程序不起作用。当您说“Autopostback=true 对我有帮助”时,我认为您确实为文本框的 TextChanged 事件提供了服务器端实现?
  • 如您所见,文本框上没有 TextChanged 事件。他们有验证组,我设置 AutoPosBack="true",它会在您单击另一个文本框后使用验证自动检查文本框的文本。

标签: c# asp.net button onclick autopostback


【解决方案1】:

我找到了解决方案。它不是稳定的解决方案,但它正在工作。我希望它也能帮助你。我的解决方案是:

<asp:Button ID="send_btn" runat="server Text="Check and Send" OnClick="send_btn_Click" OnClientClick="return true;" ValidationGroup="myval"></asp:Button>

我添加了OnClientClick="return true;",按钮点击现在正在首次点击。

如果您有更好的解决方案等待您的回复。

【讨论】:

    猜你喜欢
    • 2015-03-21
    • 2021-02-14
    • 2012-07-09
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多