Return ScriptManager.RegisterStartupScript 代码后面确认框的值

Return value of ScriptManager.RegisterStartupScript confirm box in code behind

ImageButton 上有两个确认框 - 第一个是常规的 "Are you sure you want to delete it?"(来自客户端的 OnClientClick 事件)。如果选择了 'Yes',那么它将进入服务器端代码,在那里进行另一次检查,如果该检查为真,则使用 ScriptManager.RegisterStartupScript.[=15 从后面的代码中显示第二个确认框=]

Page page = HttpContext.Current.CurrentHandler as Page;
string script = "alert('There are Agents associated to this group. Are you sure you want to delete this group?')";
ScriptManager.RegisterStartupScript(page, page.GetType(), "its working", script, true);

我的问题是,我怎样才能知道第二个确认框的值(这是在后面的代码中生成的),因为关于那个答案,我有一个删除记录。

有什么建议吗?

用户确认删除后(第2次),您需要第二次往返服务器,将值传递到服务器端。

在表单中,您可以添加一个隐藏字段来保存第二次确认的结果。如果隐藏字段被命名为 "confirmDelete",您可以像这样更改您的启动脚本:

1)在页面中,添加一个javascript函数提示用户,得到response,放入隐藏域,再次提交:

<script language="javascript">
function CheckConfirm() {
   var conf = window.prompt('There are Agents associated to this group. Are you sure you want to delete this group?');
   document.forms[0].confirmDelete.value = conf; //or equiv in jquery
   document.forms[0].submit();  //or equiv in jquery
}
</script>
<!-- don't forget to have a hidden field inside of the form -->
<input type="hidden" name="confirmDelete" />

2) 然后改变你的启动脚本来调用(上面的)JS函数:

Page page = HttpContext.Current.CurrentHandler as Page;
string script = "CheckConfirm()";
ScriptManager.RegisterStartupScript(page, page.GetType(), "its working", script, true);