Javascript确认框在c#代码后面

本文关键字:代码 确认 Javascript | 更新日期: 2023-09-27 18:05:45

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

一些服务器处理后,我需要问用户一个问题,并在用户确认后继续一些其他服务器代码。这似乎很简单。甚至警报盒工作。我怎么解它?

请注意,我不能直接从buttonclick调用javascript confirmbox,我需要做一些服务器端代码,如果那是好的,然后我想显示一个确认框继续。

代码

<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
}

Javascript确认框在c#代码后面

您应该将其添加到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. 将另一部分提交到服务器

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