【发布时间】:2015-06-02 17:55:35
【问题描述】:
我正在使用 onClick 处理程序来处理查询 SQL 的按钮单击。问题是,有时这些查询需要 10 到 30 秒才能返回。我禁用了按钮以防止在那段时间点击堆叠,但现在我想在子完成它的事情时出现一点加载 gif。
所以它应该是这样的:单击 -> 按钮禁用 -> 加载 gif 出现 -> onClick 子完成 -> 加载 gif 消失 -> 更多 Ajax 发生在同一页面上
这是我的按钮的样子
<asp:Button ID="buttonOne" runat="server" Visible="False" Text="Next" OnClientClick="this.disabled=true;" UseSubmitBehavior="false" OnClick="userName_Click"/>
并通过页面隐藏
Sub userName_Click(ByVal sender As Object, ByVal e As EventArgs)
showWidget(True)
'This part takes a few seconds
If usernameIsValid(textField.Text)
Then buttonTwo.Visible = true, labelTwo.Visible = true, buttonOne.Visible = false, labelOne.Visible = false
End If
showWidget(False)
End Sub
我目前得到的结果是 .gif 没有加载(它只注册 showWidget(Flase))。
如何将加载图像绑定到按钮单击,然后在单击动作的子例程完成后使加载图像消失?
谢谢!
【问题讨论】:
-
在服务器发送响应之前,服务器端方法无法在浏览器上显示或隐藏图像,这就是您看到此行为的原因 - 这是预期的。您可以考虑提交 ajax 请求,也可以使用
UpdatePanel。 -
好吧,我所有的按钮都在更新面板中。但也许它不起作用,因为我使用了 UseSubmitBehavior="false" ?
-
不,这不是问题所在。尝试使用
UpdateProgress控件来隐藏/显示图像。 msdn.microsoft.com/en-us/library/bb398821%28v=vs.140%29.aspx
标签: javascript asp.net ajax vb.net