mer*_*erk 2 javascript asp.net dopostback
我试图按照这里的建议:从JavaScript调用ASP.NET函数?
但这对我不起作用.该页面确实回发了.但我RaisePostBacKEvent永远不会开枪.我在用户控件而不是页面中执行此操作:
public partial class MyTreatment : System.Web.UI.UserControl, IPostBackEventHandler
Run Code Online (Sandbox Code Playgroud)
任何人对如何使这个工作有任何建议?
谢谢
您是否指定了控件的ClientID,而不是页面的ClientID(如您引用的其他SO问题的示例中所示)?
如果没有那么这就解释了为什么页面回发但没有在你的控件中调用RaisePostBack方法.
要引用控件的ClientID,请调用__doPostBack函数,如下所示:
__doPostBack("<%= yourControlID.ClientID %>", "an argument");
Run Code Online (Sandbox Code Playgroud)
作为旁注,如果您的控件是页面上唯一的控件,那么除非您为控件调用GetPostBackEventReference,否则ASP.NET不会创建__doPostBack函数.
您不一定需要使用引用,但需要调用该方法,以便页面知道生成客户端功能.
您可以像这样调用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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
4045 次 |
| 最近记录: |