【问题标题】:How to get the response from Confirm box in the code behind如何从后面代码中的确认框获取响应
【发布时间】:2012-07-25 05:52:49
【问题描述】:

我是 asp.net/C# 的新手。我正在尝试创建一个 Web 应用程序。

以下是我的要求。

我正在尝试在单击按钮时保存记录。在保存记录之前,我将检查该记录是否存在于数据库中(在后面的代码中)。如果它存在,那么我需要向用户显示一个警报“记录已经存在。你想继续?"当用户按下'是'时,我需要继续保存代码中的记录,否则我只需要退出保存过程。

//......code for checking the existence of the record    
if (check == true)
{            
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", " confirm('Record already exist.Do you want to proceed?');", true);
}
//

上面的代码显示了带有“确定”和“取消”按钮的确认框。 我的问题是

  1. 如何在确认对话框中设置为“是”或“否”?
  2. 在用户按下“是”/“否”后,我如何才能捕捉到响应(是/否),然后继续我的程序的其余部分?

我已经搜索了很多。但无法得到正确的答案。请帮助我。

【问题讨论】:

  • 您是否已经在这个项目中使用了 Ajax Control Toolkit?
  • 确认框只会给javascript一个值。您是否尝试过使用 javascript 将此值分配给回传到服务器的内容?

标签: c# asp.net


【解决方案1】:

您可以通过多种方式做到这一点:

一个是在页面上放置一个按钮,使其显示:无,当确认为真时,用js触发它的点击。

就像在 aspx 中一样

<asp:Button runat="server" ID="btnSaveData" 
     onClick="btnSaveData_Click" style="display:none;" />

在客户端做一个调用确认对话框的js函数,比如

function ConfirmSave()
{
   if(confirm('Record already exist.Do you want to proceed?')
   {
       jQuery("[ID$=btnSaveData]").click();
   }

}

在代码后面

您的代码检查某些事件处理程序

if (check == true)
{            
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", 
      "ConfirmSave();", true);
}

bthSaveData 用于保存数据的点击处理程序。

protected void btnSaveData_Click(object sender, EventArgs e)
{
 // Code for your saving.
}

【讨论】:

  • 感谢您的完整解释。
【解决方案2】:

你可以像这样在JS中使用确认框

var ans = confirm ('Record already exist.Do you want to proceed?');
if(ans==true)
{
}
else
{
}

其次,要在后面的代码中获取响应,您可以将 Yes/No 值存储到隐藏字段中,例如

document.getElementById('<%= hiddenField.ClientID %>').value = ans;

【讨论】:

  • 您没有向这个新用户解释如何在后面的代码中检索值,Yograj 的答案更好地构建和完整。
【解决方案3】:

你可以看看这个链接http://www.codeproject.com/Articles/8173/A-Simple-ASP-NET-Server-Control-Message-Box-Confir

您还可以创建自己的自定义确认框。

【讨论】:

【解决方案4】:

解决方法之一是将 TRUE / FALSE 标志存储在具有属性 runat="server" 的控件中,具体取决于用户所做的选择(是/否)。然后在后端,你可以检查这个控件的值。

【讨论】:

    【解决方案5】:

    将 AJAX 工具包与 modalpopupextender 结合使用。

       <cc1:modalpopupextender id="ModalPopupExtender1" runat="server"  cancelcontrolid="ButtonNo" okcontrolid="ButtonYes" popupcontrolid="PNL" targetcontrolid="UrSaveButton">
       </cc1:modalpopupextender>  
       <asp:Panel ID="PNL" runat="server" Style="display: none; width: 200px; background-color: #000099; border-width: 2px; border-color: Black; border-style: solid; padding: 20px;">
         <span style="color: White; font-weight: bold">Record already exist.Do you want to proceed?</span>
           <br />
            <br />
                <div style="text-align: right;">
                    <asp:Button CssClass="tbl_blue" ID="ButtonYes" runat="server" CausesValidation="false" EnableTheming="false" Text="YES" />
                    <asp:Button CssClass="tbl_blue" ID="ButtonNo" runat="server" CausesValidation="false" EnableTheming="false" Text="NO" />
                 </div>
      </asp:Panel>
    

    您可以根据需要自定义它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多