繁体   English   中英

Javascript确认框后面的C#代码

[英]Javascript confirm box in C# code behind

我试图在一些服务器端代码中间显示一个javascript确认框,并在获得用户确认后继续处理但确认框没有显示。 我甚至写了一些示例代码但没有成功。

在一些服务器处理后,我需要询问用户一个问题,并在用户确认后继续其他一些服务器代码。 它看起来很简单。 甚至警报箱工作。 我该如何解决?

请注意,我不能直接从buttonclick调用javascript confirmmbox我需要做一些服务器端代码,如果可以,那么我想显示一个确认继续。

这是代码

<asp:Button ID="btn_deletefromDB" runat="server" OnClick="btn_deletefromDB_Click"  Text="Delete from Datatbase);" />


protected void btn_deletefromDB_Click(object sender, EventArgs e)
{

         //Delete service from Database 
        // some server side processing code
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "return confirm('Do you want to delete it from runtime too? Click OK to proceed.');", true);
        Label1.Text = "delete from runtime confirmed";
        // continue and delete from runtime
        //bla bla bla

}

您应该将它添加到Button1 OnClientClick事件中,而不是在代码隐藏中触发它,如下所示:

<asp:Button ID="Button1" runat="server" OnClientClick="return confirm('Do you want to delete it? Click OK to proceed.');" OnClick="Button1_Click" />

Web应用程序不能像这样工作。 您不能在页面的服务器端生命周期中询问用户输入。 必须向客户端询问此问题,并且用户的响应必须作为页面提交数据的一部分来到服务器。

所有ScriptManager.RegisterStartupScript都有助于在页面完成请求处理时将发送到客户端的最终html内容。 请记住,当此html内容到达客户端计算机时,用户可能已关闭浏览器并回家。

使用AJAX向服务器提交查询并生成服务器代码,以便它分两部分进行处理。 我没有这方面的任何实际例子,但这是一般的工作方式。 对于将数据发布到服务器,您可以使用JS中的本机AJAX对象或其他库建议的其他库,并且在服务器端处理数据时,您可以使用通用处理程序(ashx)而不是标准网页。

  1. 将请求发送到服务器。
  2. 在客户端页面上通过JS捕获处理的第一部分。
  3. 显示JS窗口
  4. 将其他部分提交给服务器

您必须将处理的第一部分的结果发送回客户端,因为默认情况下服务器将无法将第二个请求与第一个请求连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM