【问题标题】:LinkButton click event not firingLinkBut​​ton单击事件未触发
【发布时间】:2012-09-12 12:23:20
【问题描述】:

我在服务器端绑定 click 事件处理程序,并传递一些附加参数。此绑定是作为转发器数据绑定事件的一部分完成的。当我单击 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"/>

【问题讨论】:

  • 您的意思是链接按钮在中继器内?
  • @ShadowWizard 是的,这会影响我必须绑定事件处理程序的方式吗?
  • 是的,它是关于页面生命周期的,我相信 ItemDataBound 出现在按钮事件处理程序之后。 This answer 可能是正确的。
  • @ShadowWizard - 非常感谢,我会试一试的。

标签: c# asp.net event-handling click linkbutton


【解决方案1】:

您尝试在ItemCreated 事件not in ItemDataBound 中关联点击事件处理程序。 (最佳实践)

并在 ! isPostBack 部分调整您的绑定,以免删除您注册的事件。

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

     

【讨论】:

  • 非常感谢!感谢您的回答。我仍然可以访问此处的数据项吗?我需要它。
  • 我很乐意帮助你DeeMac,在lyfecycle阶段itemCreated在ItemDataBound之前,你访问ItemDataBound中的数据
  • string1 来自数据项的一部分,在方法调用中用作参数 - 所以我不确定在这种情况下如何使用 ItemCreated,再次感谢。跨度>
  • 好的,我了解你的技术选择,DeeMac 谢谢你,你真好,我的朋友
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
相关资源
最近更新 更多