从Codebehind调用javascript
我已经阅读了许多不同的参考资料,但仍然不确定如果不使用AJAX,这是否可行 我有一个javascript函数,它将一个div加载到一个modal中,并说“Loading Please Wait”,我将这个函数命名为loadingModal() 我只需要在服务器端验证密码和用户名是否正确后触发此操作,以便:从Codebehind调用javascript,javascript,asp.net,code-behind,Javascript,Asp.net,Code Behind,我已经阅读了许多不同的参考资料,但仍然不确定如果不使用AJAX,这是否可行 我有一个javascript函数,它将一个div加载到一个modal中,并说“Loading Please Wait”,我将这个函数命名为loadingModal() 我只需要在服务器端验证密码和用户名是否正确后触发此操作,以便: btnSubmit_OnClick(object sender EventArgs e) { string usr; string password; if (
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吗
我可以从服务器端在执行中触发JavaScript吗
不需要。JavaScript代码是在服务器端处理完请求后很久在客户端(在浏览器中)计算的。客户端和服务器端脚本在不同的位置和时间运行。不可能有那种直接的互动
如果不想触发整页刷新,可以使用AJAX。当您使用AJAX时,您的客户端(浏览器)将向服务器发出新的请求。服务器处理此请求(例如,检查用户名和密码)并将响应(拒绝访问或授予访问)返回给客户端。然后由客户机适当地处理响应
我可以从服务器端在执行中触发JavaScript吗
不需要。JavaScript代码是在服务器端处理完请求后很久在客户端(在浏览器中)计算的。客户端和服务器端脚本在不同的位置和时间运行。不可能有那种直接的互动
如果不想触发整页刷新,可以使用AJAX。当您使用AJAX时,您的客户端(浏览器)将向服务器发出新的请求。服务器处理此请求(例如,检查用户名和密码)并将响应(拒绝访问或授予访问)返回给客户端。然后由客户机适当地处理响应 如果您的意思是
将javascript代码添加到页面,请参阅如果您的意思是将javascript代码添加到页面,请参阅希望不要太晚
最好的方法是添加2个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
如果validation=false,则
lblErr.Text=“用户名或密码错误或其他错误!…”
Pnloading.Style.Item(“显示”)=“无”
pnlError.Style.Item(“显示”)=“内联”
出口接头
如果结束
这样,您的用户将看到正在加载的gif,知道“某物”处于分离状态,如果出现错误,将收到警告。希望不要太晚
最好的方法是添加2个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
如果validation=false,则
lblErr.Text=“用户名或密码错误或其他错误!…”
Pnloading.Style.Item(“显示”)=“无”
pnlError.Style.Item(“显示”)=“内联”
出口接头
如果结束
这样,您的用户将看到正在加载的gif,知道“某物”处于分离状态,如果错误,则会收到警告。这就是我的想法,感谢简洁明了的回答。这就是我的想法,感谢简洁明了的回答。