【发布时间】: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