我在 ASP.NET 中使用 GridView 时遇到问题,它列出了几行文档。有些行(即文档)是未付费的,需要一个购物图标,这会将点击器完全带到另一个页面。其他行不需要图标,因为它们已付费。
这就是我到目前为止所得到的,尽管 HyperLink 抛出一个错误,指出它无法将 HyperLinkField 转换为 HyperLink。有任何想法吗?例如,通过 C# 而不是 ASP 创建 HyperLinkField 对象是否更好?
非常非常感谢所有帮助!
//珍妮
protected void getImages(Object src, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
BusinessClasses.BusinessEntities.DocumentEntity dataRow = (BusinessClasses.BusinessEntities.DocumentEntity)e.Row.DataItem;
string status = dataRow.Status.ToString();
TableCellCollection myCells = e.Row.Cells;
if (status == "UnPaid")
{
HyperLink planLink = (HyperLink)myCells[myCells.Count - 1].Controls[0];
planLink.ImageUrl = string.Format("~/Images/Icons/icon_buy.png/");
planLink.ToolTip = "Köp";
}
}
}
最佳答案
我会将您的超链接字段转换为其中包含超链接的模板字段。然后,您正在使用的代码应该可以工作。
超链接字段不是超链接。
这是一个例子:
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="link" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
关于c# - 在 C#/ASP.NET 中有条件地显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247961/