2012-01-31 192 views
0

我想使用__DoPostBack調用服務器端方法,但我不想在我的頁面中隱藏ASP runat服務器控件。是否有可能通過名稱來調用服務器端方法,而不是通過觸發它的控件的名稱?如何使用__DoPostBack無隱藏控件的目標代碼隱藏方法

問題是,我有一個asp按鈕onclick =「ExportButton_Click」,當點擊按鈕時,它調用ExportButton_Click代碼隱藏(服務器端)方法。我的問題是,我想擺脫asp按鈕,因爲我試圖動態地創建一個按鈕,點擊時會做同樣的事情。現在,我動態創建的按鈕正在調用doPostBack javascript函數,它的目標是觸發ExportButton_Click的asp Button。所以......是否可以使用__doPostBack調用ExportButton_Click代碼隱藏方法,而不必使用asp按鈕?提前致謝。

回答

2

將事件目標參數傳遞給__DoPostBack('myEvent')方法,就像那樣。

在您的代碼隱藏 Page_Load()

然後,有地方像這樣的代碼:

if (Request.Form["__EVENTTARGET"] == "myEvent") 
{ 
    //call your button click function, and pass the button to it (can pass null as the EventArgs) 
    Button1_Click(Button1, null); 
} 
1

這兩種方法是你的服務器端的朋友:

this.Page.ClientScript.GetPostBackEventReference 
this.Page.ClientScript.GetPostBackClientHyperlink 

它們可以被用來生成javascript來鏈接到您的服務器端事件。