c# - 单击 anchor 标记运行服务器端功能

标签 c# html asp.net

我需要跟踪何时单击文件链接,因此我构建了一个服务器端函数,该函数在单击 anchor 标记时写入 SQL 数据库。它不会触发或打开文件。这是我的代码:

HTML

<a href="pdf/Access2013.pdf#zoom=100" runat="server" onServerClick="AccessFile_Click" target="_blank"><img src="img/pdf_icon.png" border="0" /></a>

服务器代码

protected void AccessFile_Click(object sender, EventArgs e)
{
  App_Code.bi.LogFileDownload("Access File", Session["UserID"].ToString());
}

最佳答案

您可以改用 asp.net LinkBut​​ton:

<asp:LinkButton ID="MyLink" runat="server" OnClick="AccessFile_Click" Text="Click Here"></asp:LinkButton>

引用:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.aspx

编辑:我注意到您还希望在新窗口中打开它。要使用 LinkBut​​ton 做到这一点,请参见:http://forums.asp.net/t/1154673.aspx/1

基本上,您需要将以下内容添加到服务器端事件处理程序:

string newWindowUrl = "pdf/Access2013.pdf#zoom=100";   
 string javaScript =
  "<script type='text/javascript'>\n" +
  "<!--\n" +
  "window.open('" + newWindowUrl + "');\n" +
  "// -->\n" +
  "</script>\n";
 this.RegisterStartupScript("", javaScript);

关于c# - 单击 anchor 标记运行服务器端功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18535962/

相关文章:

javascript - 在 jquery 中禁用删除文本框的首字母?

c# - 在子页面中,我想找到母版页的内容占位符并向其添加文本。我怎样才能做到这一点?

jquery - 用图像映射显示 Div?

c++ - IIS-部署ASP.NET网站和数据库连接

c# - .Net EF 核心 DbContext.Save() 在多个异步功能期间

jquery - 使用 jQuery 更新表行

c# - 确定另一个程序集中使用/引用的程序集版本

c# - System.Net.Mail无法加载或初始化请求的服务提供者

c# - ASP.Net MVC SQL 格式化 HTML

javascript - IndexedDB:您可以手动发起版本更改事务吗?