我已经阅读了许多不同的资源,但仍然不确定不使用AJAX是否可能做到这一点。
我有一个javascript函数,它将一个div加载到一个模式中,并说“正在加载,请等待”。我已经将这个函数命名为loadingModal()
function loadingModal(url)
{
loadModal(...)
}
我需要做的是,只有在我验证了服务器端的密码和用户名正确后才会触发此操作,因此:
btnSubmit_OnClick(object sender EventArgs e)
{
string usr;
string password;
if (verify(usr, password))
{
///// TRIGGER JAVASCRIPT HERE
LOAD TONS OF SESSION VARIABLES
.
.
.
}
else
Show Error and Definitely Don't ever mention still loading
}
我知道我可以将onclientclick调用附加到javascript,但是它会加载加载模式,即使它是无效的用户名和密码
我可以从服务器端触发javascript mid执行吗?
发布于 2010-09-16 11:31:41
我可以从服务器端触发JavaScript mid执行吗?
不是的。在服务器端处理完请求很长一段时间之后,才在客户端(在浏览器中)对JavaScript代码进行评估。客户端和服务器端脚本在不同的位置和不同的时间运行。不可能有这种直接的互动。
如果不想触发整个页面刷新,可以使用AJAX。当您使用AJAX时,您的客户端(浏览器)将向服务器发出新的请求。服务器处理此请求(例如,检查用户名和密码),并向客户端返回响应(拒绝访问或允许访问)。然后由客户端来适当地处理响应。
发布于 2010-09-16 11:34:35
如果要将add
javascript代码添加到页面,请参见ScriptManager.RegisterStartupScript
发布于 2011-09-21 22:08:27
希望现在还不算太晚。
最好的方法是添加两个asp: panel :一个带有Ajax加载gif,通常在页面准备就绪之前是可见的,另一个带有style="display:none“和一个asp:Label。
在代码隐藏中,当验证为false时,只需将样式更改为display:inline,并将标签的文本设置为所需的任何内容。当然,退出sub时不要显示你的模式!
下面是一个例子:
<asp:Panel ID="pnlError" runat="server" style="display:none; position:absolute; left:300; top:300; width:300;">
<asp:Label ID="lblErr" runat="server" style=" color:Red;"></asp:Label>
</asp:Panel>
If validation = false Then
lblErr.Text = "Wrong user name or password or whatever!..."
pnlLoading.Style.Item("display") = "none"
pnlError.Style.Item("display") = "inline"
Exit Sub
End if
这样,你的用户将看到加载的gif,知道“某些东西”正在修复中,如果错误,他会被警告。
https://stackoverflow.com/questions/3723489
复制相似问题