【发布时间】:2014-07-31 03:18:35
【问题描述】:
我有一个在单击超链接时调用的代码隐藏函数。然后该函数应该从超链接中获取名称属性并使用该字符串调用另一个函数。 name 属性由角度 ngRepeat 填充。我的问题是,当我尝试在代码隐藏中获取名称属性时,它只显示一个空字符串,而不是“应该”传递的名称属性。
HTML
<a href="javascript:;" data-name="{{invoice.DocumentNumber}}" runat="server" onserverclick="btnPrintInvoiceClicked">Print Invoice</a>
最终的 HTML 输出
<a data-name="90979157" href="javascript:__doPostBack('ctl00$MainContentPlaceholder$ctl00','')">Print Invoice</a>
VB 代码隐藏
Public Sub btnPrintInvoiceClicked(ByVal sender As Object, ByVal e As EventArgs)
Dim inv As HtmlAnchor = CType(sender, HtmlAnchor)
Dim invoiceNumber As String = inv.Name
GetInvoicePDF(invoiceNumber)
End Sub
提前致谢!
编辑:添加 HTML 输出
【问题讨论】:
-
所以你是说
data-name没有提供正确的数据? -
正确。它提供一个空字符串。
-
有什么方法可以检查其他数据是否可以正确插值?
-
我尝试通过 name 属性传入非 Angular 数据,它工作正常。每当我添加 Angular 数据时,它只会显示空字符串。
-
你能添加
<a>标签的最终html输出吗?正如它所写的那样,我很惊讶btnPrintInvoiceClicked回调完全被触发(因为网络表单上的所有服务器回调都是通过表单 POST 发生的,而不是简单的 a-tag 点击)。获得该功能的唯一方法是,如果 .NET 然后修改生成的 html 的 onclick 以执行表单提交而不是更改 url。
标签: asp.net .net vb.net angularjs code-behind