ASP.NET LinkBut​​ton导致回发但不调用指定的方法

时间:2010-02-25 21:24:09

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

我已定义此方法,因为我将向长表中的每一行添加一个链接按钮。但是它不会调用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);

此代码中的内容是否有误?或者我的问题是其他的吗?

3 个答案:

答案 0 :(得分:2)

在处理click事件之前,您需要确保已将按钮插入页面,否则回发无需执行任何操作。

答案 1 :(得分:1)

您是否在page lifecycle

中尽早调用了您的插入内容

如果您将点击事件连线太晚,您将永远不会举起活动。

尝试将呼叫转移到Page Init。

答案 2 :(得分:0)

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