以前在做項目的時候,遇到過這樣的情況就是,在后台的按鈕事件中,根據相應的邏輯需要彈出一個確認對話框,供用戶來操作是否繼續執行還是終止,經過在網上仔細的搜索終於找到了一種實現的方式。具體的實現方式是在前台頁面中添加一個ASP HiddenField 隱藏控件,這個控件主要的作用就是存儲用戶在“確認”對話框中操作的返回值(true-是、false-否),其次在添加一個Button控件,這個按鈕的作用就是根據獲取到的HiddenField控件的值,來判斷程序執行的分支即(是-一個分支、否-另一個分支).
前台代碼:

1 <asp:Button ID="btnCallBack" runat="server" Text="回發並彈出confirm" OnClick="btnCallBack_Click" /> 2 <asp:Button ID="btnHid" runat="server" OnClick="btnHid_Click" Width="0px" /> 3 <asp:HiddenField ID="hid" runat="server" />
說明:
btnCallBack是程序彈出確認對話框的入口事件,
hid是頁面上的隱藏控件,主要的作用是用來存儲用戶操作的返回值(在后台通過JS給其進行賦值)
btnHid是在后台中獲取頁面上隱藏控件的值來進行代碼分支邏輯的流轉
后台代碼:

protected void btnCallBack_Click(object sender, EventArgs e) { if (true) // 數據驗證---已經存在分析數據 { string js = string.Format("document.getElementById('{0}').value=confirm('是否確認?');document.getElementById('{1}').click();", hid.ClientID, btnHid.ClientID); ClientScript.RegisterStartupScript(GetType(), "confirm", js, true); } else // 數據驗證---沒有存在的分析數據 { // 直接進行數據的插入 InserData(); } } protected void btnHid_Click(object sender, EventArgs e) { string result = hid.Value.ToLower() == "true" ? "是" : "否"; Response.Write(string.Format("您選擇的是{0}: ", result)); if (result == "是") { // 進行數據的更新 this.Page.Response.Write("這里進行數更新和新數據的插入!\n"); bool flag = UpData(); if (flag) { InserData(); } } else { // 不做數據的插入 this.Page.Response.Write("這里什么都不做直接退出!\n"); return; } } /// <summary> /// 獲取數據進行驗證 /// </summary> private bool GetDataValid() { bool flag = true; // 這里面去進行數據驗證 this.Page.Response.Write("這里進行數據驗證\n"); return flag; } /// <插入數據> /// 插入數據 /// </插入數據> /// <returns></returns> private bool InserData() { bool flag = true; this.Page.Response.Write("這里進行數據插入\n"); return flag; } /// <更新數據> /// 更新數據 /// </更新數據> /// <returns></returns> private bool UpData() { bool flag = true; this.Page.Response.Write("這里進行數據更新\n"); return flag; }
說明:
后台就是一些邏輯代碼,自己定義吧....