最近在進(jìn)行項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)遇到這種情況,就是當(dāng)用戶(hù)點(diǎn)擊頁(yè)面上的button時(shí),系統(tǒng)需要彈出一個(gè)窗口。這個(gè)窗口可能是標(biāo)準(zhǔn)對(duì)話框,也可能是一個(gè)新的頁(yè)面。開(kāi)始的時(shí)候我不知道如何實(shí)現(xiàn)這樣的功能,按照我以前的編程習(xí)慣,我認(rèn)為應(yīng)該有一個(gè)類(lèi)似于showmessage的方法,但是,可惜這種方法在web下是沒(méi)有的。通過(guò)在網(wǎng)上查閱資料,發(fā)現(xiàn)一般的做法是在button的onclick事件中寫(xiě)下如下代碼:
  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)用戶(hù)點(diǎn)擊button1按鈕,將會(huì)彈出一個(gè)對(duì)話框。這種做法,其實(shí)就是在你的.cs文件中內(nèi)嵌一段javascript腳本文件。但是,我想大家看到這樣的代碼,或許會(huì)感覺(jué)很不舒服,這么多的""很容易暈!如果需要彈出一個(gè)頁(yè)面,并且需要傳遞參數(shù),那樣編寫(xiě)出的代碼感覺(jué)會(huì)更暈!
后來(lái),我考慮能不能把關(guān)于腳本部分都放在.aspx文件里,.cs里直接引用函數(shù)名稱(chēng)即可。事實(shí)證明是可以的,請(qǐng)看下面的實(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) 
  { 
  // 在此處放置用戶(hù)代碼以初始化頁(yè)面 
  this.button1.attributes.add("onclick","javascript:showmessagebox();"); 
  } 
3.現(xiàn)在當(dāng)你點(diǎn)擊頁(yè)面上button1按鈕,所產(chǎn)生效果與先前那種方法類(lèi)似,但是整個(gè)系統(tǒng)代碼看起來(lái)舒服了許多。
[總結(jié)]:使用這樣的方法來(lái)編寫(xiě)程序,不會(huì)使你的程序運(yùn)行的更快、更穩(wěn)定....它所起到的作用,只是讓你的代碼閱讀起來(lái)更方便,便于與人交流。利用這種思想,我們可以舉一反三,盡量不要在cs文件里寫(xiě)大量的javascript腳本文件。如果大家有什么好的想法,歡迎與我交流!
新聞熱點(diǎn)
疑難解答
圖片精選