__doPostBack用法 【csdn】
???? 今天寫ajax程序時,需要重新從后臺加載數據,所以用了__doPostBack方法。 __doPostBack并不是我自己寫的方法,是由asp.net 自己加入頁面中的方法。我們運行Asp.net程序后,會在生成的html源碼中看到__doPostBack方法,其代碼如下:
代碼 <script?type="text/javascript">//<![CDATA[
var?theForm?=?document.forms['aspnetForm'];
if?(!theForm)?{
????theForm?=?document.aspnetForm;
}
function?__doPostBack(eventTarget,?eventArgument)?{
????if?(!theForm.onsubmit?||?(theForm.onsubmit()?!=?false))?{
????????theForm.__EVENTTARGET.value?=?eventTarget;
????????theForm.__EVENTARGUMENT.value?=?eventArgument;
????????theForm.submit();
????}
}
//]]>
</script>
__doPostBack說明: __doPostBack可以實現客戶端控件調用服務器端控件的響應。
__doPostBack方法的格式為: __doPostBack(eventTarget,eventArgument)
? 參數: eventTarget:是要觸發的服務器控件的客戶端ID
? eventArgument:參數
這個兩個值在后臺可以通過下邊方法得到:
??? Request["__EVENTTARGET"]???? :獲取得到引發頁面PostBack的控件ID
??? Request["__EVENTARGUMENT"]: 獲取參數。
例子,回發UpDataPanel,通過參數獲取資料。
1)首先調用doPostBack觸發回發:?
?說明:
ctl00_ContentPlaceHolder1_upModulePower:是加了母版頁后的生成的客戶端ID。
jsPostback:用于判斷是不是通過js控件觸發的回發。因為UpDatePanel中會有其它服務器控件解發的回發,所以用此參數加以區分。
?2) 在后臺PageLoad中得到參數,并取數據。
//判斷是否是js觸發的回發?if?(Request["__EVENTARGUMENT"]?==?"jsPostback")
{
????//此處調用相關后臺方法
??? //……
}
?
其它問題:
??? 但是在我們調用__doPostBack函數時,有些時候調用這個函數會出現"對象不存在"的腳本錯誤? 那是因為Html里面沒有__doPostBack函數體,一般在拖放那些有自動回傳功能的控件時,當把他的autoPostback屬性設為True,在運行的時候系統會自動添加__doPostback函數體。當然最直接的辦法就是添加一個LinkButton。在頁面中加如 LinkButton ,頁面就會在頁面中加載POSTBACK所需的JS,然后把其Text屬性設為空,切記不要設 Visible屬性,因為如果Visible=false,在翻譯成Html時,直接就忽略LinkButton的存在了
轉載于:https://www.cnblogs.com/yongtaiyu/archive/2011/05/13/2045746.html
總結
以上是生活随笔為你收集整理的__doPostBack用法 【csdn】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apple Mac OS X每日一技巧0
- 下一篇: Linq标准查询运算及用法