javascript - 尝试从 jscript __dopostback,RaisePostBackEvent 未触发

标签 javascript asp.net dopostback

我正在尝试遵循此处的建议:Call ASP.NET function from JavaScript?

但这对我不起作用。该页面确实回发。但我的 RaisePostBacKEvent 从未触发。我是在用户控件而不是页面中执行此操作:

public partial class MyTreatment : System.Web.UI.UserControl, IPostBackEventHandler

有人对如何实现此功能有任何建议吗?

谢谢

最佳答案

您是否指定控件的 ClientID,而不是页面的 ClientID(如您引用的其他 SO 问题的示例中所示)?

如果不是,那就可以解释为什么页面回发但不调用控件中的 RaisePostBack 方法。

要引用控件的 ClientID,请像这样调用 __doPostBack 函数:

__doPostBack("<%= yourControlID.ClientID %>", "an argument");

顺便说一句,如果您的控件是页面上唯一的控件,则 ASP.NET 不会创建 __doPostBack 函数,除非您调用 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)
    {

    }
} 

希望这有帮助。

关于javascript - 尝试从 jscript __dopostback,RaisePostBackEvent 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534075/

相关文章:

javascript - 如何将 MVC3 模型作为 JSON 参数传递给 JS 函数?

jquery - 在 ASP.NET 用户控件上使用 JQuery?

asp.net - 无法从 'System.Data.Linq.Binary' 转换为 'System.IO.BinaryReader'

javascript - AJAX PageMethods 与路由冲突?

javascript - __doPostback 如何在 asp.net 网站上创建 url?

javascript - 谷歌地图最大标记

php - 我的网站需要有许可设施

javascript - google analytics 统计单个页面的两次访问

asp.net - OutputCache 和 RenderAction 缓存整个页面

c# - 防止来自 __doPostBack 的完全回发