【问题标题】:ASP.NET LinkButton causes postback but doesn't call specified methodASP.NET LinkBut​​ton 导致回发但不调用指定的方法
【发布时间】:2010-02-25 21:24:08
【问题描述】:

我定义了这个方法,因为我将在长表中的每一行添加一个链接按钮。但是它不调用 eventHandler。它确实会导致 asyncPostback 但从不调用 eventHandler。

public static void InsertLinkButton(string text, string id, EventHandler eventHandler,
        UpdatePanel updateSummary, PlaceHolder placeHolder)
{
    LinkButton link = new LinkButton();
    link.Text = text;
    link.Click += eventHandler;
    link.CausesValidation = false;
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
    trigger.ControlID = link.ID = "link" + id;
    trigger.EventName = "Click";
    Utils.Tag(link, placeHolder);
    updateSummary.Triggers.Add(trigger);
}

事件处理程序的签名:

protected void link_Click(object sender, EventArgs e)
{
    //check which link clicked me and do stuff
}

我会用这个来调用方法:

InsertLinkButton("Division", "Division", link_Click, updateSummary, placeHolderSummary);

这段代码有问题吗?还是我的问题是其他原因?

【问题讨论】:

  • 检查您的呼叫代码。你会得到一个编译错误。您需要五个参数,而只发送四个。
  • 是的,我复制/粘贴了错误的调用代码

标签: c# asp.net asp.net-ajax


【解决方案1】:

在点击事件处理之前,你需要确保你的按钮已经插入到页面中,否则回发没有任何工作可做。

【讨论】:

    【解决方案2】:

    您在pagelifecycle 中是否足够早地调用您的插入?

    如果您将点击事件连接得太晚,您将永远不会引发该事件。

    尝试将调用移至 Page Init。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题。给 LinkBut​​tons 一个 ID 解决了我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-04
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多