asp.net操作javascript:confirm返回值的兩種方式

字號:


    在asp.net中使用confirm可以分為兩種:
    1.沒有使用ajax,confirm會引起也面刷新
    2.使用了ajax,不會刷新
    A.沒有使用ajax,可以用StringBuilder來完成.
    (一)asp.net用StringBuilder控制后臺操作javascript:confirm返回值,此方法比較煩瑣
    1.后臺啟動事件
    1
    2
    3
    4
    5
    6
    7
    StringBuilder sb = new StringBuilder();
    sb.Append("<script language='javascript'>");
    sb.Append("var val=window.confirm('Are you sure!');");
    sb.Append("window.document.getElementById('TextBox1').value=val;");
    sb.Append("__doPostBack('TextBox1','');");
    sb.Append("</script>");
    this.RegisterStartupScript(System.Guid.NewGuid().ToString(), sb.ToString());
    2.前臺代碼:
    代碼如下:
    <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
    3.文本框OnTextChanged="TextBox1_TextChanged"的后臺事件代碼
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
    if (((TextBox)(sender)).Text != "")
    {
    if (((TextBox)(sender)).Text.ToUpper() == "TRUE")
    {
    //確定后執(zhí)行另一個事件/方法
    }
    if (((TextBox)(sender)).Text.ToUpper() == "FALSE")
    {
    //取消后執(zhí)行另一個事件/方法
    }
    }
    }
    該事件也可以寫成其它的方法驅(qū)動。只是判斷TexBox1的值。
    注意:該事件由AutoPostBack="true"引起頁面刷新,全局變量丟失,最好使用session變量來保存需要存儲的值。
    (二)通過前臺Javascript來確定后臺執(zhí)行的方法,也就多了個OnClientClick事件此方法最簡單
    前臺按鈕事件
    代碼如下:
    <asp:Button ID="bt_DeleteButton" runat="server" OnClick="bt_DeleteButton_Click" OnClientClick="if(confirm('調(diào)用后臺bt_DeleteButton_Click事件,確定繼續(xù)嗎?')){return true;}else{return false;}" Text="刪除" Visible="False" />
    就在頁面上添加
    a.OnClick后臺事件,
    b.OnClientClick事件,javascript的confirm,選擇 確定后執(zhí)行 OnClick后臺是事件bt_DeleteButton_Click
    B:使用了Ajax控件的頁面
    代碼如下:
    ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('提示');if(confirm('是否繼續(xù)執(zhí)行yes)){alert('本頁面繼續(xù)添加')}else{window.open('productManage.aspx','_blank');}", true);