在Web 開發環境,通常需要讓使用者決定的的程式判斷點~

最常的就是確認和取消

但Web開發通常無法像Win 應用程式有很直覺像Dialog

PS:筆者 已Jquery 的改良版DomWindow 可以讓設計更為直覺!! 

有興趣可以參考:

[ASP.NET]JQuery以DOMWindow 製作對話視窗(可控制呼叫Server端程式語言)

 


之後依照使用者按了確認或取消繼續程式的進行,

但confirm是Client語言,要讓他與微軟的C#或VB溝通,除非使用Ajax方式(WebService、泛型處理常式、還有後製程式碼等方式)

對開發者而言,就更需要著墨Ajax的實作

以下以微軟的開發環境實作,此設計模式是靠著使用者觸發Button(使用者按的)來啟動Confrim,

並在使用者按下確定後,對要確認後的流程之Button()作Click的動作,

達到類Win 的Dialog的模式,進行程式流程的控制!

實作內容:  先宣告Btn1、Btn2 兩個Button,對於Btn2的部分,我們不想使用者可以看到直接去點擊,

所以可以在外部包一層div ,設style="display:none;"


並宣告一個註冊JS的Comfirm的公用方法

public static void Confirm(Page page, string Msg, Button Button) { dynamic btn = Button.ClientID;
//重點在此句 ,讓Js判斷使用者按了確定,則對註冊的Btn2做Click的動作!
//若按取消則什麼時都不做!
 string js = "if (confirm('" + Msg + "?')) { $('#" + btn + "').click(); }"+
 "else{ return false; }"; 
 //也可以使用Page來註冊JS ,可依環境可調整
 ScriptManager.RegisterStartupScript(page, page.GetType, "confirm", js, true); }

//當使用者按下Btn1,會秀出Confirm

protected void Btn1_Click(Object sender, EventArgs e)

{

/****** your Code *****/

String ThisMsg = "已到程式判斷點了! ";

JScript.Confirm ( this, ThisMsg , Btn2);

}


//當使用者按下確認,會執行的區塊

protected void Btn2_Click(Object sender, EventArgs e)

 

{

 

/******當使用者按下確認所執行的程式! *****/

}




arrow
arrow
    全站熱搜

    Ryan 發表在 痞客邦 留言(0) 人氣()