5

我是 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. 用户按下“是”/“否”后,我怎样才能捕捉到响应(是/否),然后继续我的程序的其余部分?

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

4

5 回答 5

3

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

一种是在页面上放置一个按钮,使其显示:无,当确认为真时,用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.
}
于 2012-07-25T06:07:56.483 回答
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;
于 2012-07-25T05:59:37.697 回答
0

将 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>

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

于 2012-07-25T06:08:13.147 回答
0

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

于 2012-07-25T06:00:59.600 回答
0

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

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

于 2012-07-25T05:59:21.160 回答