你指定控件的客戶端ID,而不是網頁的客戶端ID(如示例從另一個SO問題,你引用的)?
如果沒有,那麼這將解釋爲什麼該頁面回發,但沒有在您的控件中調用RaisePostBack方法。
要引用您控制的客戶端ID,調用__doPostBack函數像這樣:
__doPostBack("<%= yourControlID.ClientID %>", "an argument");
作爲一個側面說明,如果你的控制頁面,則__doPostBack功能不會被創建的唯一控制ASP.NET,除非您爲您的控件撥打電話GetPostBackEventReference。
您不一定需要使用該引用,但需要調用該方法,以便頁面知道生成客戶端功能。
您可以撥打GetPostBackEventReference像這樣:
public class MyTreatment : UserControl, IPostBackEventHandler
{
protected override void OnLoad(EventArgs e)
{
string postBackEventReference = Page.ClientScript.GetPostBackEventReference(this, string.Empty);
base.OnLoad(e);
}
public void RaisePostBackEvent(string eventArgument)
{
}
}
希望這有助於。
must..show..code –
向我們展示您的通話__doPostBack ... –