c# - 在 C#/ASP.NET 中有条件地显示图标

标签 c# asp.net casting hyperlink

我在 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/

相关文章:

c# - 在操作方法中抛出 HttpResponseException 时处理 HttpResponseMessage 及其内容

asp.net 文本框不会在 iPhone 上显示垂直滚动条

c++ - 将 24 位有符号整数信号转换为 16 位有符号整数信号

c# - 如何使用 SQLiteAsyncConnection.QueryAsync() 使用原始查询来删除 MVVM cross 中的一行?

c# - 如何编写一个可以处理 Task 和 ValueTask 的方法?

c# - 使用 TempData 字典会阻止 RedirectToAction 工作

c# - 有没有一种方法可以检查 Android/Xamarin/c#/net 中使用的内存、空闲内存甚至内存泄漏

asp.net - IdentityServer 4 使用 IIS

function - 在 Dart 中将变量转换为函数/方法指针? (代表?)

delphi - 为什么在调用 Dispose 之前必须转换为特定的指针类型?