(論壇答疑點滴)__doPostBack()無效?

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- (論壇答疑點滴)__doPostBack()無效? (http://www.webasp.net/article/18/17829.htm)
-- 作者:未知
-- 發佈日期: 2005-04-21
有的時候想在客戶端觸發服務器端控件的click事件
我們這麼寫__doPostBack('id','')
但是為什麼有的時候會實效?
因為__doPostBack()函數並沒有在頁面產生
(如果沒有類似linkbutton等控件的話asp.net引擎不產生這段js)
解決方法如下:
比如前台頁面
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>

(1)

<href="#" onclick="document.getElementById('Button1').click()">觸發服務器端按鈕事件</a>

(2)
利用GetPostBackEventReference給客戶端生成__doPostBack()
前台

<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");
            }


webasp.net