我正在尝试创建一个可点击的图片,单击该图片会转到动态网址。我尝试了几种方法,但似乎缺少了一些东西。
<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>
上面的代码导致Parse错误(服务器标签格式不正确。)
<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>
上面的代码给出了相同的Parser错误。这两个错误分别出现在asp:HyperLink和href字段中。
感谢。
答案 0 :(得分:1)
您在第一个示例中的href属性值上嵌套双引号,而在第二个示例中为您的NavigateUrl嵌套。用单引号替换外部或内部双引号。
答案 1 :(得分:1)
这应该有效: -
<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
属性中分配图像。