你指定控件的客户端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 ... –