c# - 如何动态定义超链接点击事件?

标签 c# asp.net radgrid

我陷入困境:我正在运行时创建一个具有导航 URL 的超链接。我需要定义它的点击事件,以便我可以将一些值保存到数据库中。我做了类似下面的事情,但没有成功。

您能建议一个替代方案吗?

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) {
  if (e.Item is GridDataItem) {
    HyperLink link = (HyperLink)gridDataItem["ContentTitle"].Controls[0];
    link.ForeColor = System.Drawing.Color.Navy;
    link.ToolTip = Common.grdTextCell(gridDataItem["ContentSummaryDescr"].Text);
    link.NavigateUrl = "~/SomePath/" + gridDataItem["ContentName"].Text;
    link.Target = "_blank";
    link.Attributes.Add("onclick", "document.getElementById('" +
      dummyBtn.ClientID + "').click();");
  }
}

protected void dummyBtn_Click(object sender, EventArgs e) {
}

但是按钮单击事件没有触发,它只是导航到 URL。请问该怎么办?

最佳答案

要触发服务器端事件,您需要一个 LinkBut​​ton 而不是 HyperLink

LinkBut​​ton 有一个可供您使用的 Click 事件处理程序。

HyperLink 仅重定向,并且没有与服务器端代码关联的相应 Click 事件处理程序

关于c# - 如何动态定义超链接点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467688/

相关文章:

c# - Swagger 按位枚举标志处理

c# - 如何执行非阻塞 System.Beep()?

c# - RadGrid 中的下拉菜单

c# - 为什么在 ASP.Net Core 2 MVC 中更改密码后登录

c# - 使用 javascript asp.net 的网格列总计

performance - Telerik RadGrid 工作示例

asp.net - 如何在 DeleteCommand 事件中获取 radgrid 中的列值

c# - 函数导入(存储过程)是否需要 SaveChanges()?

c# - 如何在 Scala 上使用属性?

c# - Context.User 在 Asp.net MVC 应用程序中通过 windows auth 在 Application_AuthenticateRequest 中为 NULL