Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Codebehind调用javascript_Javascript_Asp.net_Code Behind - Fatal编程技术网

从Codebehind调用javascript

从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 (

我已经阅读了许多不同的参考资料,但仍然不确定如果不使用AJAX,这是否可行

我有一个javascript函数,它将一个div加载到一个modal中,并说“Loading Please Wait”,我将这个函数命名为loadingModal()

我只需要在服务器端验证密码和用户名是否正确后触发此操作,以便:

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,知道“某物”处于分离状态,如果错误,则会收到警告。

这就是我的想法,感谢简洁明了的回答。这就是我的想法,感谢简洁明了的回答。