Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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
Javascript 在ASP.NETVB中,有没有一种方法可以通过从代码后面调用函数来创建“是/否”弹出窗口?_Javascript_Asp.net_Vb.net - Fatal编程技术网

Javascript 在ASP.NETVB中,有没有一种方法可以通过从代码后面调用函数来创建“是/否”弹出窗口?

Javascript 在ASP.NETVB中,有没有一种方法可以通过从代码后面调用函数来创建“是/否”弹出窗口?,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我需要在ASP.Net网页的代码隐藏中检查一个变量,如果该变量是某个值,我希望显示一个带有消息和“是/否”按钮的模式弹出窗口。消息将从代码隐藏处发送。您不能这样做。但是,您可以获得大致相同的效果 第一种方法-非常简单 这假设用户要单击表单上的按钮。比如说删除按钮,或者说运行一个进程 将标准asp.net按钮按如下方式放入表单: <asp:Button ID="Button3" OnClientClick="return myconfirm();&quo

我需要在ASP.Net网页的代码隐藏中检查一个变量,如果该变量是某个值,我希望显示一个带有消息和“是/否”按钮的模式弹出窗口。消息将从代码隐藏处发送。

您不能这样做。但是,您可以获得大致相同的效果

第一种方法-非常简单

这假设用户要单击表单上的按钮。比如说删除按钮,或者说运行一个进程

将标准asp.net按钮按如下方式放入表单:

    <asp:Button ID="Button3" OnClientClick="return myconfirm();"
        runat="server" Text="Delete record" Width="90px" />
    <script>
        function myconfirm() {

            var x = confirm("Do you want to delete this record");
            return x;
        }
    </script>

函数myconfirm(){
var x=确认(“您想删除此记录吗”);
返回x;
}
因此,上面将首先运行“js”脚本代码。注意“在客户端点击”。若该函数返回true,那个么标准代码隐藏按钮(服务器端)将运行

事实上,在很多情况下,用户“必须”点击某个东西才能采取行动。你真的说点击一个按钮,然后代码隐藏开始运行。然而,在这个所谓的“往返”过程中,您不能让代码停止并请求输入,例如yes/no

为什么??因为当您单击一个按钮时,网页会向上移动到服务器。您的代码隐藏开始运行。您在web页面上更改的任何内容现在都会随着代码的隐藏而更改。然后整个页面被发送回浏览器。如果您在代码隐藏中停止或中断代码,则网页将永远不会被发送回浏览器,直到您的所有代码隐藏100%完成并完成。当所有隐藏的代码都完成后,页面将被发送回浏览器。所以你不能打断代码

弹出对话框还有其他几种方法。由于代码隐藏,您可以弹出并启动一个对话框,但实际上这将是您的代码所做的最后一件事,这将意味着一个脚本块被发送到web页面中的rid,同时也被发送到客户端

代替js中的“lame”confirm(),您当然可以使用say jQuery.UI,与可怕、丑陋和简单的确认对话框相比,它允许您创建一些不太像样的对话框。平心而论,Chrome浏览器的confirm()确实看起来很不错,但大多数浏览器中的confirm()/alert()对话框都有很多不尽如人意的地方,称它们为“丑陋”是一种善意

询问/获取提示的另一种方式?不要使用确认/确认对话框。只需在表单上输入“是/否”,如单选按钮所示。如果您有2-3个问题,只需将auto post back设置为true,在第一个yes/no(比如单选按钮组)之后,就会出现post back,然后显示下一个问题。我发现这在代码隐藏方面非常有效

最后但并非最不重要? 如果代码隐藏是代码的最后一行或最后一行,则肯定可以弹出一个对话框。您可以执行RegisterSipt块,它可以弹出一个“是/否”对话框。但由于这只是您可以在代码隐藏中执行的最后一个代码,因此99%的情况下,您的代码隐藏将是用户单击asp.net按钮的结果。既然如此,那么上面的第一个请求/确认再次运行按钮代码的示例在99%的情况下就足够了。所以请记住,在往返过程中,代码中不能有任何阻塞代码。因此,不能出现阻塞提示,然后代码隐藏继续。代码背后有一个镜头,一个改变运行。该代码在服务器上打开页面时运行。您的代码运行、更改内容、控件的值,然后一旦完成,页面将返回到客户端。这就是所谓的往返

如前所述,在往返设置中,您可以确保在页面返回到浏览器后,浏览器会提示“是/否”对话框。例如,我说设置一个toast消息。如果一个人说点击某个按钮,然后说要做某件事(比如下载一个文件),而该文件不存在?我可以让浏览器说吐出祝酒词。因此,您可以在“代码隐藏”中触发对话框或toast消息,甚至可以从“代码隐藏”中弹出对话框,但请记住,设置toast消息或弹出对话框将是您在“代码隐藏”中执行的最后一个操作,然后浏览器返回到客户端,并显示,然后弹出对话框。弹出该对话框后,您可以(并且将)使代码隐藏(以及另一个往返)发生。我可以发布一个如何执行此操作的示例,但在此exmaple中,当代码隐藏正在设置并触发对话框时,不会出现代码阻塞,或者等待是/否,然后代码块继续