数据绑定方法(如Eval(),XPath()和Bind())只能在转发器控件中的数据绑定控件的上下文中使用

时间:2016-03-21 12:01:17

标签: asp.net vb.net

这是我的代码

<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方法。

1 个答案:

答案 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()) %>">

<% %>标记是解析器在构建页面输出以发送到浏览器时识别要处理的服务器端代码的方式。