有的時候想在客戶端觸發服務器端控件的click事件 我們這麼寫__doPostBack('id','') 但是為什麼有的時候會實效? 因為__doPostBack()函數並沒有在頁面產生 (如果沒有類似linkbutton等控件的話asp.net引擎不產生這段js) 解決方法如下: 比如前台頁面
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
(1)
<a href="#" onclick="document.getElementById('Button1').click()">觸發服務器端按鈕事件</a>
(2) 利用GetPostBackEventReference給客戶端生成__doPostBack() 前台
<a href="#" onclick="<%=PostBack()%>">觸發服務器端按鈕事件</a>
後台
protected string PostBack()
 {
return this.Page.GetPostBackEventReference(this.Button1,"haha");
} 通過__EVENTARGUMENT="haha"可以判斷是不是點了那個鏈接的PostBack 把Button1的按鈕事件這麼寫:
if(Request["__EVENTARGUMENT" ]=="haha")
 {
Response.Write("這個是鏈接的PostBack");
}
else
 {
Response.Write("這個不是鏈接的PostBack");
}
|