根据文本将图像插入Gridview单元格

时间:2014-03-06 14:32:16

标签: asp.net vb.net gridview

我使用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

enter image description here

我希望能够插入替换1的图像(或者图像中的是),如果为0则将其留空。我不知道如何做到这一点,任何人都可以提供一些指针,因为谷歌搜索没有帮助因为他们都引用了我没有的asp.net页面中的图像控件。

1 个答案:

答案 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页面存在于同一文件夹中的图像文件