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