2012-01-03 63 views
2

在我的aspx頁面中,我有一個gridview,它將我數據庫中的值顯示爲「*」。所以如果我的數據庫表中的值是5,它將在gridview中顯示爲「*****」。在vb中顯示一個值作爲圖像

代碼ASPX:在aspx.vb

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

代碼

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

+1

看看我最近在這個類似問題上的答案:http://stackoverflow.com/q/8502496/284240 – 2012-01-03 15:55:50

+0

在你的例子中,5是'*****'你希望這是一個單一的圖像或star.jpg圖像的五個實例?什麼是有效範圍?我假設1到5或1到10(即一個相對有限的集合),而不是1到100億或類似的東西... – Chris 2012-01-03 15:56:04

+0

@Chris star.jpg圖像的五個實例和範圍取決於數據庫,已被設置爲1到5. – 2012-01-03 16:01:07

回答

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。這在某些方面更好,因爲它可以更好地控制它們的外觀以及允許製作五個相同大小的圖像,並且知道所使用的空間總是相同的。

+0

非常感謝!正是我需要的。 – 2012-01-03 18:31:00

+0

@RayClark:不要忘記接受答案,如果你很高興它是正確的。 :) – Chris 2012-01-04 10:11:14

相關問題