为什么我的事件绑定失败

本文关键字:失败 绑定 事件 我的 为什么 | 更新日期: 2023-09-27 18:27:37

我在.aspx页面上有一个链接按钮:

<asp:LinkButton runat="server" ID="lnkSynEvent" Text="Export Event to Outlook"></asp:LinkButton>

以及一种关于代码隐藏页的方法:

protected void lnkSynEvent_Click(object sender, EventArgs e, DataTable data)
        {}

现在在运行时,我正试图将事件绑定到函数中的链接按钮

lnkSynEvent.Click +=new EventHandler((sender,args) => lnkSynEvent_Click(sender,args, eventData));

但是当用户点击链接按钮时,它不会触发点击事件。不知道为什么。

请帮忙。

为什么我的事件绑定失败

您需要将事件附加到每个post back上。换句话说,如果在if (!IsPostBack)中附加一个事件,它就不会"激发"。

protected void Page_Load(object sender, EventArgs e)
{
  var data = new DataTable();
  lnkSynEvent.Click += new EventHandler((s, a) => lnkSynEvent_Click(s, a, data));
}
protected void lnkSynEvent_Click(object sender, EventArgs e, DataTable data)
{
}

以下代码不会触发点击事件

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    var data = new DataTable();
    lnkSynEvent.Click += new EventHandler((s, a) => lnkSynEvent_Click(s, a, data));
  }
}

您需要向LinkButton标记添加一个OnClick属性(这是在编译时设置的)。

<asp:LinkButton runat="server" OnClick="lnkSynEvent_Click" ID="lnkSynEvent" Text="Export Event to Outlook"></asp:LinkButton>

MSDN链接