靈活運用__doPostBack函數[修改篇]

來源:互聯網
上載者:User
今天在做開發的時候,需要在client端調用server端的方法,以前沒有用過。請教了一位朋友,知道了可以用_doPostBack來完成這個功能,所以上網搜了一些資料,其中下面這篇不錯,摘錄下來。。。。
   最後 感謝所有協助過我的朋友。。。

關於前台調用後台事件__doPostBack函數

在.NET中,所有的伺服器控制項提交到伺服器的時候,都會調用__doPostBack這個函數,所以靈活運用這個函數對於我們的協助還是很大的。

比如,在我們寫程式的時候經常會需要動態產生一些控制項,最簡單的方法就是通過一個字串,比如string strButton  =  <input type =”button” ID=”button1”>,然後輸出到頁面,但是如果我們需要這個控制項來執行一些伺服器的功能,就比較困難了。這裡我們就可以用過借用__doPostBack這個函數來完成。接下來我覺個例子來說明一下具體如何調用。

既然要在伺服器端運行那麼,我們可以聲明一個不可見的LinkButton控制項,那通常,我們希望一個控制項不可見,通常都是把visible屬性設為false。但是在這裡我們把LinkButton的Text屬性設定為空白,來是這個LinkButton不可見(為什麼要這麼設定,而不是直接設定visible屬性,我會在下面說明),接下來我們可以在LinkButton裡面寫一些伺服器端的代碼。然後就是如何通過我們動態產生的用戶端控制項來調用LinkButton裡面的功能,我們可以通過一個JavaScript函數來實現

function ExcuteOnServer()
{
  //第一個參數是你希望提交到伺服器的控制項的ID號,第二個參數是事件參數
   __doPostBack('LinkButtonID','');
}

接下去我們只需要在動態產生的這個Button控制項的onclick事件中寫上onclick=”JavaScript:ExcuteOnServer();“,這樣當我們點擊這個動態產生的用戶端控制項的時候,他便會執行LinkButton中的代碼。

這樣便實現了動態產生的用戶端控制項提交到伺服器端的功能。

最後要說一下的就是為什麼希望LinkButton控制項不可見的時候,不是通過visible屬性來完成的。因為當我們把visible屬性設定為false的時候,瀏覽器在解析的時候,根本不會把這個控制項放在頁面上,也就是說這個控制項是不存在的,所以我們在調用__doPostBack函數的時候,便會找不到控制項。

另:今天在aspalliance上看到一篇文章:Four Ways to Locally Update a Web Page,其sample 3展示了用ICallbackEventHandler介面實現用戶端調用伺服器方法的實現過程。大家可以下載demo看一下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.