在后面的 C# 代码中显示“是/否”警报框

Posted

技术标签:

【中文标题】在后面的 C# 代码中显示“是/否”警报框【英文标题】:Display a "Yes / No" alert box in C# code behind 【发布时间】:2011-04-19 09:12:54 【问题描述】:

我正在尝试在 C# 中显示来自代码隐藏的“是/否”消息框。如果用户单击“是”,我想调用“AddRecord”过程,如果用户单击“否”,则不执行任何操作。

理想情况下,我想使用下面的代码,但来自代码隐藏:

OnClientClick = "return confirm('Are you sure you want to delete?');"

我在 SO 和 google 上搜索,但找不到任何有用的东西。

【问题讨论】:

你的意思是不能用jQuery,还是不能用javascript 不能使用 jQuery。 Javascript很好; 你应该在这个问题中添加标签 webforms 【参考方案1】:

在您的添加记录按钮上,只需执行以下操作:

    <asp:button ID="AddRecordbutton" runat="server" Text="Add Record"
 onclick="AddRecordButton_Click" onclientclick="return confirm('add record?');" />

在您的代码中,只需将添加记录代码放入您的 AddRecordButton_Click 事件处理程序中。只有当他们在弹出窗口上单击“是”时才会调用它。


或者,您可以在最初呈现按钮时让您的代码隐藏分配 onclientclick 代码。

例如:

protected void Page_Load(object sender, EventArgs e) 
  AddRecordButton.OnClientClick = @"return confirm('Add Record?');";

【讨论】:

从 OP 发布的评论来看,我认为这是最好的方法。 非常酷@Chris。感谢您的回复。第一个代码示例就像一个魅力。 是的,但你必须明白这里是 JavaScript,而不是 C#。您不能在客户端上执行 C#。【参考方案2】:

不,你没有。

您似乎误解了网页的基本概念。

一个 ASPX 页面是一个简短的程序,它启动,生成 html,然后终止。然后通过 Internet 将 HTML 发送到用户浏览器。您在代码隐藏中所做的一切都必须在用户看到之前完成。

你真的想要一个 javascript 对话框。 (实际上,根据您的描述,您可以在 HTML 中创建一个看起来像消息框的 div,上面有一个标准的 HTML 表单。)

【讨论】:

+1 用于 div,JS 消息框很烦人,现在大约三年没有在任何主要网站上使用。 @user:警告框会冻结浏览器,直到它被清除并遵循用户桌面的主题而不是网页的配色方案。 (html 论坛或 jQuery 对话框是网页本身的一部分,因此没有这些问题) 它们中断了用户工作流程。显示消息框后,我总是必须将视图集中在屏幕的中心(尽管我正在填写的字段可能位于页面底部,例如)。其次,消息框是模态的,例如,我必须阅读并关闭一个才能切换到另一个选项卡。然而,我必须说删除记录足以成为显示消息框的借口,因为它实际上确实需要中断用户工作流程。但是对于诸如错误的字段数据(或者更糟的是,“更新成功!”)之类的东西,它们永远不应该被使用。在我看来。 @James,只是为了争论,警报框的目的不是成为模态并冻结页面吗?我同意配色方案点; @gaearon,好的,我知道你来自哪里。谢谢你的解释。【参考方案3】:

要显示一个实际的消息框,您将需要 javascript,因为它是在客户端完成的。无论出于何种原因,如果您不能使用 javascript,您可以按照 AEMLoviji 的建议进行操作,并巧妙地“伪造”它。

请注意,您不需要 jQuery 来显示消息框,简单的 javascript 就足够了。

【讨论】:

【参考方案4】:

如果您在面板上使用 Ajax Control Toolkit Modal Popup Extender 和您的两个按钮,这将在服务器上触发一个事件,该事件可以处理并执行您希望的任何方法/功能

请参阅here 了解示例

【讨论】:

过去尝试过Ajax,但是生产服务器(网络农场)往往会弄乱ajax,所以我宁愿避免使用Ajax;【参考方案5】:

使用RegisterStartupScript

ScriptManager.RegisterStartupScript(this, GetType(), "unique_key",
    "element.onclick = function() return confirm('Are you sure you want to delete?'); ;",
    true);

【讨论】:

【参考方案6】:

显示是/否

<script>     
        function AlertFunction() 
            if (confirm('Are you sure you want to save this thing into the database?')) 
               $('#ConfirmMessageResponse').val('Yes');
             else 
                $('#ConfirmMessageResponse').val('No');
            
        
    </script>

从 .net 端处理它:

string confirmValue = ConfirmMessageResponse.Value;
                if (confirmValue == "Yes")
                ...

【讨论】:

以上是关于在后面的 C# 代码中显示“是/否”警报框的主要内容,如果未能解决你的问题,请参考以下文章

在android编程中选中复选框时,使用警报框显示从给定的自定义列表视图中删除行的代码

如何在 Javascript 的警报/确认框中显示图像?

如何在后面的c#代码中将div添加到容器div

div 标题的客户端更改未反映在后面的 C# 代码中

如何在后面的代码中获取使用 Raduploader 动态创建的文本框的值?

警报框未显示。 X 代码是跳过 Swift 中的警报框代码