我使用VS 2013(VB)和asp.net。
我使用MS SQL 2012表中的值以编程方式创建了gridview。
gridview的asp.net如下
<asp:GridView ID="availableRuns" runat="server" HorizontalAlign="Center" CssClass="Asset_table" HeaderStyle-CssClass="Asset_table_header" ></asp:GridView>
gridview的VB代码是
Dim RTORun As New RTO
Dim RTORuns As New List(Of RTO)
RTORuns = RTORun.getRTO
availableRuns.DataSource = RTORuns
availableRuns.DataBind()
我想要使用另一个子元素将单元格中的值转换为当前用于更改文本值的图像。
Protected Sub changeText()
Dim row As GridViewRow
For Each row In availableRuns.Rows
Dim i As Integer
For i = 0 To row.Cells.Count - 1
If row.Cells(i).Text = "1" Then
row.Cells(i).Text = "Yes"
ElseIf row.Cells(i).Text = "0" Then
row.Cells(i).Text = ""
End If
Next
Next
End Sub
这会产生以下gridview
我希望能够插入替换1的图像(或者图像中的是),如果为0则将其留空。我不知道如何做到这一点,任何人都可以提供一些指针,因为谷歌搜索没有帮助因为他们都引用了我没有的asp.net页面中的图像控件。
答案 0 :(得分:2)
您可以通过两种方式完成此操作 - 直接HTML分配:
If row.Cells(i).Text = "1" Then
row.Cells(i).Text = "<img src='MyYesImg.jpg' />"
其中“MyYesImg.jpg”是与ASPX页面位于同一文件夹中的图像。此外,您必须确保网格列的HtmlEncode
属性设置为False
,以便图像显示。
或者,通过programmaticaly添加Image Control(你做有 - 它是标准的ASP.NET控件,框架的一部分)
Dim img As Image
'...loop code
If row.Cells(i).Text = "1" Then
row.Cells(i).Text = ""
img = New Image
img.ImageUrl = "MyYesImg.jpg"
row.Cells(i).Controls.Add(img)
再次“MyYesImg.jpg”是与ASPX页面存在于同一文件夹中的图像文件