__doPostBack()沒有定義解決方法(轉)

有的時候想在客戶端觸發服務器端控件的click事件
咱們這麼寫__doPostBack('id','')
可是爲何有的時候會失效?
由於__doPostBack()函數並無在頁面產生
若是沒有相似linkbutton等控件的話asp.net引擎不產生這段js,此緣由 該Linkbutton不能爲visible服務器

若是頁面有能夠不隱藏的Linkbutton,此問題就解決了asp.net

但若是沒有:
解決方法以下:
好比前臺頁面 <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
(1)方法一:若是是有單擊link觸發:<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");
                 }
this

       經過__EVENTARGUMENT="haha"能夠判斷是否是點了那個連接的PostBack
       把Button1的按鈕事件這麼寫:
               if(Request["__EVENTARGUMENT" ]=="haha")
               {
                     Response.Write("這個是連接的PostBack");
              }
              else
              {
                      Response.Write("這個不是連接的PostBack");
              } .net

相關文章
相關標籤/搜索