C# 确认消息框

C# 确认消息框,c#,javascript,asp.net,popup,C#,Javascript,Asp.net,Popup,我必须为一个函数显示一个是非弹出消息框> 这是我为警报弹出窗口所做的> Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script>alert('File Updated');</script>"); Page.ClientScript.RegisterStartupScript(this.GetType(),“警报”,“警报('File Updated');”); 这就是我在

我必须为一个函数显示一个是非弹出消息框>

这是我为警报弹出窗口所做的>

  Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script>alert('File Updated');</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(),“警报”,“警报('File Updated');”);
这就是我在代码隐藏中要做的:

if (ID != 0)
{
     Page.ClientScript.RegisterStartupScript(this.GetType(), "Confirm", "<script>confirm('are you sure?');</script>");

    if (yes)
    {
        perform function
    }
    else
    {
        return;
    }

}
if(ID!=0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),“Confirm”,“Confirm('you sure?');”);
如果(是)
{
履行职能
}
其他的
{
返回;
}
}
确认不起作用,,,有什么建议吗 谢谢

编辑部分:

  • 导航到一个页面
  • 向文本框添加值
  • 单击“保存”按钮向数据库添加值
  • 询问用户是否确定要执行“确定吗?”,确认弹出窗口
  • 现在,仅当ID为!=0,否则不需要弹出窗口
  • 如果他说是,则添加到数据库中,并显示警告弹出窗口,显示已在数据库中输入值
  • 如果没有,那么就不要添加到数据库,只需返回
  • 所以我得到了这样的确认框。。但是我怎样才能得到所选择的呢

    string scriptString = "<script language='JavaScript'> ";
                scriptString += "confirm ('Are you sure you want to Close this period.')";
                scriptString += "</script>";
                Response.Write(scriptString);
    
    string scriptString=”“;
    scriptString+=“确认('是否确实要关闭此期间')”;
    脚本字符串+=“”;
    Write(脚本字符串);
    
    Page.ClientScript.RegisterStartupScript将在客户端上注册该脚本。据我所知,您正在服务器上执行if语句。请您具体说明什么是确认无效?警报框是否显示,但如果按“是/否”,则不会产生任何效果?如果是,请移动If。。。客户机上的else语句。无论如何,我建议您使用以下代码替换RegisterStartupScriptBlock:

    ClientScript.RegisterClientScriptBlock
         (this.GetType(), "confirm", "alert('do')", true);
    

    Page.ClientScript.RegisterStartupScript将在客户端上注册该脚本。据我所知,您正在服务器上执行if语句。请您具体说明什么是确认无效?警报框是否显示,但如果按“是/否”,则不会产生任何效果?如果是,请移动If。。。客户机上的else语句。无论如何,我建议您使用以下代码替换RegisterStartupScriptBlock:

    ClientScript.RegisterClientScriptBlock
         (this.GetType(), "confirm", "alert('do')", true);
    

    看起来您要做的是(在一个简化的场景中):

  • 让用户导航到Page.aspx
  • 检查
    ID
    的值(假设 这是一个查询字符串参数)
  • 如果
    ID
    的值非零,则提示 用户需要确认
  • 如果他们确认要做“某件事”
  • 您所犯的错误是试图在代码背后同时处理2、3和4。您发出的脚本(通过调用RegisterStartupScript)在整个页面被呈现回用户之前不会执行,此时用于检查
    ID
    值并执行某些操作的步骤3和步骤4的代码将被“跳过”

    您需要做的是决定如何在客户机站点和服务器端之间分离工作,因为您试图做的事情根本不起作用。在不知道页面如何工作以及ID值来自何处的情况下,我无法给出一个具体的示例,但是,类似于:

  • 让您的页面检查
    ID
    ,看看它是否符合您的标准,如果符合,则发出javascript,但使用一些附加的javascript检查对提示的响应,并导致页面重新提交,但在查询字符串上添加了confirmed=yes
  • 让您的页面检查querystring参数“confirm”是否为yes。如果是,那么就做这项工作

  • 看起来您要做的是(在一个简化的场景中):

  • 让用户导航到Page.aspx
  • 检查
    ID
    的值(假设 这是一个查询字符串参数)
  • 如果
    ID
    的值非零,则提示 用户需要确认
  • 如果他们确认要做“某件事”
  • 您所犯的错误是试图在代码背后同时处理2、3和4。您发出的脚本(通过调用RegisterStartupScript)在整个页面被呈现回用户之前不会执行,此时用于检查
    ID
    值并执行某些操作的步骤3和步骤4的代码将被“跳过”

    您需要做的是决定如何在客户机站点和服务器端之间分离工作,因为您试图做的事情根本不起作用。在不知道页面如何工作以及ID值来自何处的情况下,我无法给出一个具体的示例,但是,类似于:

  • 让您的页面检查
    ID
    ,看看它是否符合您的标准,如果符合,则发出javascript,但使用一些附加的javascript检查对提示的响应,并导致页面重新提交,但在查询字符串上添加了confirmed=yes
  • 让您的页面检查querystring参数“confirm”是否为yes。如果是,那么就做这项工作

  • 你不能这样做。RegisterStartupScript只是在页面最终呈现时注册要包含的脚本。呈现(为HTML)后,HTML将发送到浏览器。因此,当用户最终看到弹出窗口时,您的代码早已完成

    编辑:


    请参阅Mike C:您需要在提交之前将确认移动到。

    您不能这样做。RegisterStartupScript只是在页面最终呈现时注册要包含的脚本。呈现(为HTML)后,HTML将发送到浏览器。因此,当用户最终看到弹出窗口时,您的代码早已完成

    编辑:


    参见Mike C:您需要在提交之前将确认移动到。

    这里的问题是,如果不发回,您无法获取确认框的值。JavaScript在客户端运行,直到发生回发(通过ajax或常规方式),它才能与C#文件“对话”

    <
    if (ID != 0)
    {
    Perform function
    }
    
    <asp:ImageButton runat="server" ID="DeleteUrlImageButton" ImageUrl="~/Images/icon_remove.gif"
      OnClick="DeleteUrlImageButton_Clicked"
      OnClientClick="return confirm('Are you sure you want to delete?');" />