如何在 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 的额外文件夹。
您好,我尝试将图像从数据库显示到 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 的额外文件夹。