3

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

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

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

这是代码

<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

}
4

3 回答 3

3

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

<asp:Button ID="Button1" runat="server" OnClientClick="return confirm('Do you want to delete it? Click OK to proceed.');" OnClick="Button1_Click" />
于 2013-03-26T05:31:11.510 回答
2

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

所做的只是对页面完成请求处理时将发送给客户端ScriptManager.RegisterStartupScript的最终内容做出贡献。html请记住,当此html内容到达客户端计算机时,用户可能已经关闭浏览器并回家了。

于 2013-03-26T05:27:51.593 回答
1

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

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

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

于 2013-03-26T09:55:25.370 回答