2012-09-12 194 views
0

我绑定了单击事件处理程序服务器端,并传递了一些其他参数。该绑定是作为中继器数据绑定事件的一部分完成的。当我点击LinkBut​​ton时,事件处理程序从未被触发。不知道为什么:LinkBut​​ton单击事件未触发

lnkUp.Click += (lnkSender, eventArgs) => { lnk_Click(lnkSender, eventArgs, int1, int2, string1); }; 

(我检查lnkUp不为空等)。

的事件处理程序:

void lnk_Click(object sender, EventArgs e, Int32 int1, Int32 int2, String string1) 
{ 
     //Do something fantastic 
} 

如果你想知道关于加价:

<asp:LinkButton ID="lnkUp" runat="server" Text="SomeText"/> 
+0

你的意思是链接按钮是一个中继器里面? –

+0

@ShadowWizard是的,这是否影响我必须绑定事件处理程序的方式? –

+1

是的 - 它是关于页面生命周期的,并且我相信ItemDataBound在按钮事件处理程序之后。 [这个答案](http://stackoverflow.com/a/12388171/447356)可能是正确的。 –

回答

3

你试试联想单击事件处理程序中ItemCreated事件,not in ItemDataBound。 (最佳做法)

并调整你的绑定只是在! isPostBack部分,为了不擦除注册的事件。

void Repeater_ItemCreated(Object Sender, RepeaterItemEventArgs e) 
{ 
    ..... 
} 

+0

非常感谢!欣赏你的答案。我仍然可以访问这里的数据项吗?我需要它。 –

+0

我很高兴为您解答DeeMac,在lyfecycle阶段itemCreated在ItemDataBound之前,您访问ItemDataBound中的数据 –

+0

string1来自数据项的一部分,它在方法调用中用作参数 - 所以我不是确定在这种情况下我将如何使用ItemCreated,再次感谢。 –

相关问题