【问题标题】:Displaying a value as an image in vb在vb中将值显示为图像
【发布时间】:2012-01-03 15:51:00
【问题描述】:

在我的 aspx 页面中,我有一个 gridview,它将我的数据库中的值显示为“*”。因此,如果我的数据库表中的值为 5,它将在 gridview 中显示为“*****”。

aspx 中的代码:

<asp:TemplateField HeaderText="Rating" SortExpression="Rating">
              <ItemTemplate><h1><%# getrating(Eval("Rating"))%></h1></ItemTemplate>
            </asp:TemplateField>

aspx.vb 中的代码

Protected Function getrating(ByVal rate As Integer)
        Dim retval As String
        retval = ""
        For i = 1 To rate
            retval = retval + "*"
        Next
        Return retval
    End Function

我要做的是将“*”更改为图片,即star.jpg,因此在gridview中它将显示图像star.jpg而不是“*”。

请问有什么办法吗?使用 MS Visual Studio 2010

【问题讨论】:

  • 看看我最近对这个类似问题的回答:stackoverflow.com/q/8502496/284240
  • 在您的示例中,5 是*****,您希望它是单个图像还是 star.jpg 图像的五个实例?还有什么是有效范围?我假设 1 到 5 或 1 到 10(即相对有限的集合)而不是 1 到 100 亿或类似的东西......
  • @Chris 五个实例的star.jpg图像,范围取决于数据库中的值,已设置为1到5。

标签: asp.net vb.net visual-studio visual-studio-2010 gridview


【解决方案1】:

您应该能够执行以下操作:

retval = retval + "<img src=""star.jpg"" alt=""*"">"

您可能需要一些样式来将它们全部放在同一行(float:left 应该这样做),但我忘记了是否有必要。

这个原理显然是非常基本的。在输出的 HTML 中,您将只有一个图像标签,之前您有一个 *.一种更简洁的方法可能是一到五张图片,然后有类似的东西:

Protected Function getrating(ByVal rate As Integer)
    Dim retval As String
    retval = String.Format("<img src=""Star{0}.jpg"" alt=""{0} stars"">", rate)
    Return retval
End Function

这将输出一个指向 Star1 到 Star5 中任何一个的图像标签。这在某些方面更好,因为它可以更好地控制它们的外观,并允许您制作五个相同大小的图像并且知道使用的空间将始终相同。

【讨论】:

  • 非常感谢!正是我需要的。
  • @RayClark:如果您对正确答案感到满意,请不要忘记接受答案。 :)
【解决方案2】:

这是一个使用 CSS 的实现 - http://www.thebroth.com/blog/119/css-rating-stars - 确实需要额外的 div 和两个图像来创建效果,但似乎是一个很好的解决方案。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 2020-03-28
    • 2017-08-03
    • 2011-10-09
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多