使用 asp:ItemTemplate 时出现解析错误
Parse error when using asp:ItemTemplate
我正在尝试创建一个可点击的图像,当点击该图像时,它会变为动态 url。我已经尝试了几种方法,但似乎遗漏了一些东西。
<asp:TemplateField HeaderText="Copy">
<asp:ItemTemplate>
<a href="../PricingTool/PriceListCopy.aspx?PriceListID=<%# Eval("PriceListID") %>" runat="server" ID="lnkCopy" ><asp:Image runat="server" src="../../Images/plus.gif" /></a>
</asp:ItemTemplate>
</asp:TemplateField>
以上代码导致解析错误(服务器标记格式不正确。)
<asp:TemplateField HeaderText="Copy">
<asp:ItemTemplate>
<asp:HyperLink runat="server" ID="lnkCopy" NavigateUrl="../PricingTool/PriceListCopy.aspx?PriceListID=<%# Eval("PriceListID") %>" ><asp:Image runat="server" src="../../Images/plus.gif" /></asp:HyperLink>
</asp:ItemTemplate>
</asp:TemplateField>
上面的代码给了我同样的解析器错误。这两个错误分别发生在 asp:HyperLink 和 href 字段上。
谢谢。
您在第一个示例中的 href 属性值上嵌套双引号,在第二个示例中为您的 NavigateUrl 嵌套双引号。用单引号替换外部或内部双引号。
我认为这应该是没有 asp:
前缀的 <ItemTemplate>
:
<asp:TemplateField HeaderText="Copy">
<ItemTemplate>
...
</ItemTemplate>
</asp:TemplateField>
这应该有效:-
<asp:TemplateField HeaderText="Copy">
<ItemTemplate>
<a href='<%# String.Format("../PricingTool/PriceListCopy.aspx?PriceListID={0}",
Eval("PriceListID")) %>' runat="server" id="lnkCopy">
<asp:Image runat="server" ImageUrl="../../Images/plus.gif" /></a>
</ItemTemplate>
</asp:TemplateField>
首先,您将双引号与单引号混合使用,因此一旦遇到 Eval
方法中存在的双引号就会抛出错误。
除此之外,由于您正在使用<asp:Image
,无需再次包含HTML img 标签,您可以直接在ImageUrl
属性 中分配图像。
我正在尝试创建一个可点击的图像,当点击该图像时,它会变为动态 url。我已经尝试了几种方法,但似乎遗漏了一些东西。
<asp:TemplateField HeaderText="Copy">
<asp:ItemTemplate>
<a href="../PricingTool/PriceListCopy.aspx?PriceListID=<%# Eval("PriceListID") %>" runat="server" ID="lnkCopy" ><asp:Image runat="server" src="../../Images/plus.gif" /></a>
</asp:ItemTemplate>
</asp:TemplateField>
以上代码导致解析错误(服务器标记格式不正确。)
<asp:TemplateField HeaderText="Copy">
<asp:ItemTemplate>
<asp:HyperLink runat="server" ID="lnkCopy" NavigateUrl="../PricingTool/PriceListCopy.aspx?PriceListID=<%# Eval("PriceListID") %>" ><asp:Image runat="server" src="../../Images/plus.gif" /></asp:HyperLink>
</asp:ItemTemplate>
</asp:TemplateField>
上面的代码给了我同样的解析器错误。这两个错误分别发生在 asp:HyperLink 和 href 字段上。
谢谢。
您在第一个示例中的 href 属性值上嵌套双引号,在第二个示例中为您的 NavigateUrl 嵌套双引号。用单引号替换外部或内部双引号。
我认为这应该是没有 asp:
前缀的 <ItemTemplate>
:
<asp:TemplateField HeaderText="Copy">
<ItemTemplate>
...
</ItemTemplate>
</asp:TemplateField>
这应该有效:-
<asp:TemplateField HeaderText="Copy">
<ItemTemplate>
<a href='<%# String.Format("../PricingTool/PriceListCopy.aspx?PriceListID={0}",
Eval("PriceListID")) %>' runat="server" id="lnkCopy">
<asp:Image runat="server" ImageUrl="../../Images/plus.gif" /></a>
</ItemTemplate>
</asp:TemplateField>
首先,您将双引号与单引号混合使用,因此一旦遇到 Eval
方法中存在的双引号就会抛出错误。
除此之外,由于您正在使用<asp:Image
,无需再次包含HTML img 标签,您可以直接在ImageUrl
属性 中分配图像。