在vb中将值显示为图像

时间:2012-01-03 15:51:01

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

在我的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而不是“*”。 / p>

请问如何做到这一点?使用MS visual studio 2010

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

你可能需要一些造型来将它们全部放在同一条线上(浮动:左边应该这样做)但我忘记了是否有必要。

这个原则显然是非常基本的。在输出的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中的任何一个的图像标记。这在某些方面更好,因为它可以更好地控制它们的外观,并允许你制作五个相同大小的图像,并且知道所用的空间总是相同的。