这是我的代码
<asp:Repeater ID="rptBasket" runat="server" OnItemCommand="DeleteItem">
<ItemTemplate>
<a href="Utility.GetProductUrl(Convert.ToInt16(Eval("productID")),Eval("productName").ToString(),Eval("SKU").ToString())"><%#Eval("productName") %> </a>
</ItemTemplate>
</asp:Repeater>
基本上我想将数据传递给来自转发器控件的GetProductUrl
方法。
答案 0 :(得分:2)
您尝试直接在页面标记中使用服务器端代码:
<a href="Utility.GetProductUrl(Convert.ToInt16(Eval("productID")),Eval("productName").ToString(),Eval("SKU").ToString())">
这不起作用,并且由于多种原因无效。 (对于初学者,人们甚至会期望任何解析器知道如何处理嵌套的双引号?)
请注意如何在标记中的其他位置正确使用服务器端代码:
<%# Eval("productName") %>
您必须使用您希望使用服务器端代码的任何位置的相同表示法。例如:
<a href="<%# Utility.GetProductUrl(Convert.ToInt16(Eval("productID")),Eval("productName").ToString(),Eval("SKU").ToString()) %>">
<% %>
标记是解析器在构建页面输出以发送到浏览器时识别要处理的服务器端代码的方式。