2010-02-25 49 views
0

我有这样的方法定义的,因为我将在长表中添加一个链接按钮,每一行。但是它不会调用eventHandler。它确实会导致一个asyncPostback,但从不调用eventHandler。ASP.NET LinkBut​​ton的回发原因,但不会调用指定的方法

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); 
} 

的事件处理程序的signiture:

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

我会调用该方法具有这样的:

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

东西在这段代码错了吗?或者是我的问题其他软件?

+0

检查您的调用代码。你会得到一个编译错误。你需要五个参数,只发送四个参数。 – 2010-02-25 21:26:48

+0

是啊,我复制/粘贴错误调用代码 – jamone 2010-02-25 21:32:54

回答

2

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

1

你叫你插入足够早在pagelifecycle

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

尝试移动电话进入页面初始化。

0

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

相关问题