Member 13366692 Ответов: 1

Изменить тип поля gridview


Я новичок в этом деле vb.net ! мой код работает, чтобы показать мои данные базы данных на GridView это прекрасно работает, но я хочу изменить конкретное значение на изображение? мой код :
Dim img_c As String = "my image Url"
    Dim img_x As String
    Dim constr As String = ("my connection string")
    Dim con As New SqlConnection(constr)
    Dim cmd As New SqlCommand()
    cmd.CommandText = "SELECT * FROM Attendance"
    cmd.Connection = con
    Dim sda As New SqlDataAdapter(cmd)
    Dim dt As New DataTable()
    sda.Fill(dt)
    GridView1.DataSource = dt
    GridView1.DataBind()
    Dim ds As New DataSet
    For i As Integer = 1 To GridView1.Rows.Count - 2
        For s As Integer = 3 To GridView1.Columns.Count - 2
            If GridView1.Rows(i).Cells(s).text ="1" Then
                GridView1.ImageField(img_c)

            End If
        Next
    Next

мой источник:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
       CellPadding="4" DataKeyNames="std_num"
       Height="448px" Width="1352px" BackColor="White" BorderColor="#3366CC"
       BorderStyle="None" BorderWidth="1px" style="margin-right: 12px">
       <Columns>
           <asp:BoundField DataField="Total" HeaderText="totla" SortExpression="Total" >
           <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="4" HeaderText="4" SortExpression="4"  >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="3" HeaderText="3" SortExpression="3"  >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="2" HeaderText="2" SortExpression="2"  >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="1" HeaderText="1" SortExpression="1"  >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="std_name" HeaderText="std_name"
               SortExpression="std_name" >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="std_num" HeaderText="std_num"
               SortExpression="std_num" ReadOnly="True" >
               <HeaderStyle ForeColor="White" />
           </asp:BoundField>
           <asp:BoundField DataField="No" HeaderText="No" SortExpression="No"
               InsertVisible="False" ReadOnly="True" >
           <HeaderStyle ForeColor="White" />
           </asp:BoundField>
       </Columns>
       <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
       <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
       <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
       <RowStyle BackColor="White" ForeColor="Black" BorderColor="#333333"
           Font-Bold="True" HorizontalAlign="Center" VerticalAlign="Middle" />
       <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
       <SortedAscendingCellStyle BackColor="#EDF6F6" />
       <SortedAscendingHeaderStyle BackColor="#0D4AC4" />
       <SortedDescendingCellStyle BackColor="#D6DFDF" />
       <SortedDescendingHeaderStyle BackColor="#002876" />
   </asp:GridView>

моя проблема заключается в изменении поля на изображение , нет никаких свойств изображения GridView

Что я уже пробовал:

Если ДС.Таблицы("Посещаемость").Строки(i - 1).пункт(ы).ToString = "1" Тогда
Управления gridview1.Ряды(я).Клетки(ы).Text = ImageField(img_c)

Конец, Если

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Вы не можете присвоить значение полю изображения в GridView. Однако вы, вероятно, можете использовать атрибут DataImageUrlField объекта ImageField и установить там URL-адрес изображения.

Кроме того, если вы хотите иметь полный контроль над своим изображением, то я бы посоветовал вам использовать TemplateField вместо этого. Например:

<asp:TemplateField>
      <ItemTemplate>
           <asp:image id="Image1" runat="server" />
       </ItemTemplate>
</asp:TemplateField>


Затем в вашем коде, в событии RowDataBound, вы можете получить доступ к элементу управления изображением и установить ImageUrl на все, что вы хотите, в зависимости от вашего состояния. В качестве быстрого примера можно привести:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim img1 As Image = CType(e.Row.FindControl("Image1"), Image)

        If img1 IsNot Nothing Then
            Dim fieldToCheck = e.Row.Cells(4).Text

            If fieldToCheck.Equals("1") Then
                img1.Visible = True
                img1.ImageUrl = "Set the image path here"
            Else
                img1.Visible = False
            End If
        End If
    End If
End Sub