如何在 asp.net 中将数据库中的图像显示到 GridView

How can I display the images from database to GridView in asp.net

您好,我尝试将图像从数据库显示到 GridView,但我只存储了部分图像路径 (Uploade/imageName.png) 如何把孔路径放在GridView(~/image/Uploade/imageName.png)显示图片

我的代码:

                        <AlternatingRowStyle Width="100px" />
                        <Columns>
                            <asp:ButtonField CommandName="Select" Text="select">
                                <ControlStyle ForeColor="Orange"></ControlStyle>
                            </asp:ButtonField>
                            <asp:ImageField DataImageUrlField="path" 
                                ControlStyle-Width="100" ControlStyle-Height="100">
                                <ControlStyle Height="100px" Width="100px"></ControlStyle>
                            </asp:ImageField>

                        </Columns>

                        <RowStyle HorizontalAlign="Center" />
                    </asp:GridView>

我会删除图片,然后将平面简图控件放入网格中。

然后您可以像这样使用 Eval() 表达式进行数据绑定:

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID"  />
            <asp:BoundField DataField="PicName" HeaderText="Picture Name"/>

            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Image ID="Image1" runat="server"
                        ImageUrl='<%# "~/Image/" + Eval("PicPath")  %>' 
                        Height="200px" Width="200px" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

因此,您必须将该控件放在 ItemTemplate 的“一侧”。

所以,我加载网格的代码是这样的:

因此,我的数据 table 是这样的:

但是,如前所述,路径名不包括第一部分 (Image/)。

我们要加载的代码可能是这样的:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        LoadGrid
    End If

End Sub

Sub LoadGrid()

    Using cmdSQL As New SqlCommand("SELECT ID, PicName, PicPath FROM tblPictures",
                    New SqlConnection(My.Settings.TEST4))

        cmdSQL.Connection.Open()
        GridView1.DataSource = cmdSQL.ExecuteReader
        GridView1.DataBind()

    End Using

End Sub

输出:

因此您可以很自由地 have/use 图片路径的表达式 - 包括在该路径名中添加您 need/want 的额外文件夹。