最近在進行項目開發中,經常會遇到這種情況,就是當使用者點擊頁面上的Button時,系統需要彈出一個視窗。這個視窗可能是標準對話方塊,也可能是一個新的頁面。開始的時候我不知道如何?這樣的功能,按照我以前的編程習慣,我認為應該有一個類似於ShowMessage的方法,但是,可惜這種方法在WEB下是沒有的。通過在網上查閱資料,發現一般的做法是在Button的OnClick事件中寫下如下代碼:
{
string strScript = "<script language=javascript>\n";
strScript += "window.alert(" + "\"hello\"" + ");";
strScript += "";
Response.Write(strScript);
}
以上代碼的效果就是當使用者點擊Button1按鈕,將會彈出一個對話方塊。這種做法,其實就是在你的.cs檔案中內嵌一段javascript指令檔。但是,我想大家看到這樣的代碼,或許會感覺很不舒服,這麼多的""很容易暈!如果需要彈出一個頁面,並且需要傳遞參數,那樣編寫出的代碼感覺會更暈!
後來,我考慮能不能把關於指令碼部分都放在.aspx檔案裡,.cs裡直接引用函數名稱即可。事實證明是可以的,請看下面的實現方法:
1.在aspx的之前添加這段代碼
function showmessagebox()
{
window.alert("hello");
}
2.在cs檔案的Page_Load事件裡添加以下代碼
{
// 在此處放置使用者代碼以初始化頁面
this.Button1.Attributes.Add("onclick","javascript:showmessagebox();");
}
3.現在當你點擊頁面上Button1按鈕,所產生效果與先前那種方法類似,但是整個系統代碼看起來舒服了許多。
[總結]:使用這樣的方法來編寫程式,不會使你的程式啟動並執行更快、更穩定....它所起到的作用,只是讓你的代碼閱讀起來更方便,便於與人交流。利用這種思想,我們可以舉一反三,盡量不要在cs檔案裡寫大量的javascript指令檔。如果大家有什麼好的想法,歡迎與我交流!