最近在進行項目開發(fā)中,經(jīng)常會遇到這種情況,就是當(dāng)用戶點擊頁面上的Button時,系統(tǒng)需要彈出一個窗口。這個窗口可能是標準對話框,也可能是一個新的頁面。開始的時候我不知道如何實現(xiàn)這樣的功能,按照我以前的編程習(xí)慣,我認為應(yīng)該有一個類似于ShowMessage的方法,但是,可惜這種方法在WEB下是沒有的。通過在網(wǎng)上查閱資料,發(fā)現(xiàn)一般的做法是在Button的OnClick事件中寫下如下代碼: 網(wǎng)上沖浪更快更爽,下載... 工具欄的 Firefox private void Button1_Click(object sender, System.EventArgs e) { string strScript = "<script language=javascript>\n"; strScript += "window.alert(" + "\"hello\"" + ");"; strScript += ""; Response.Write(strScript); } 以上代碼的效果就是當(dāng)用戶點擊Button1按鈕,將會彈出一個對話框。這種做法,其實就是在你的.cs文件中內(nèi)嵌一段javascript腳本文件。但是,我想大家看到這樣的代碼,或許會感覺很不舒服,這么多的""很容易暈!如果需要彈出一個頁面,并且需要傳遞參數(shù),那樣編寫出的代碼感覺會更暈! 后來,我考慮能不能把關(guān)于腳本部分都放在.aspx文件里,.cs里直接引用函數(shù)名稱即可。事實證明是可以的,請看下面的實現(xiàn)方法: 1.在aspx的之前添加這段代碼 <script language="jscript"> function showmessagebox() { window.alert("hello"); } 2.在cs文件的Page_Load事件里添加以下代碼 private void Page_Load(object sender, System.EventArgs e) { // 在此處放置用戶代碼以初始化頁面 this.Button1.Attributes.Add("onclick","javascript:showmessagebox();"); } 3.現(xiàn)在當(dāng)你點擊頁面上Button1按鈕,所產(chǎn)生效果與先前那種方法類似,但是整個系統(tǒng)代碼看起來舒服了許多 Feedback# re: ASP.NET中如何彈出對話框 回復(fù) 更多評論2007-01-16 17:58 by whatisgood1.set javabins.js function showmessagebox(var strInput) { window.alert(strInput); } 2.quote: <script src = "./javabins.js"> 3. call strInput = "hello"; this.Button1.Attributes.Add("onclick","javascript:showmessagebox("+ strInput + ");"); 兄弟,沒你說的那么簡單,實際中都根所用戶的操作結(jié)果來彈出不同內(nèi)容的提示,而不是點個button彈出一個hello 還有呀:Response.Write彈出提示時整個頁面會刷新,且白屏,效果很差.... # re: ASP.NET中如何彈出對話框 回復(fù) 更多評論2007-02-25 13:20 by Hatter Jiang不要用“Response.Write”,這樣產(chǎn)生的HTML會VALIDATE不過,應(yīng)該使用:“RegisterStartupScript”方法!
|