在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)
{
/******當使用者按下確認所執行的程式! *****/
}
留言列表