ASP.NET - 网格视图不显示图像
本文关键字:显示 显示图 图像 视图 NET 网格 ASP | 更新日期: 2023-09-27 18:35:30
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="bookname" Height="504px"
Width="289px">
<Columns>
<asp:TemplateField HeaderText="image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# String.Format("~/path/to/image/" + Eval("image")) %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("image") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="bookname" HeaderText="bookname" ReadOnly="True"
SortExpression="bookname" />
<asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [image], [bookname], [price] FROM [books]">
</asp:SqlDataSource>
我的图像字段保存在 (SQL Server 2005)...并通过文件上传按钮将图像插入数据库...现在我想在 GridView 中显示数据,但不显示图像字段和 GridView 中显示的其他字段,因为其他字段是文本格式。
<asp:Image ID="Image1" runat="server" ImageUrl='<%# String.Format("~/path/to/image/{0}" , Eval("image")) %>' />
您的问题是string.Format
接受参数并且您使用的是 concat 操作。在这里我使用了{0} - stands for argument at/for index 0
.同样,对于多个参数,您可以使用string.Format("{0} {1} {2}",var1,var2,var3).
同样在上面,我假设{0}将被带有扩展名的文件名替换,例如 abc.png。
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="bookname" Height="504px"
Width="289px">
<Columns>
<asp:TemplateField HeaderText="image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# String.Format("~/path/to/image/{0}" , Eval("image")) %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("image") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="bookname" HeaderText="bookname" ReadOnly="True"
SortExpression="bookname" />
<asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [image], [bookname], [price] FROM [books]">
</asp:SqlDataSource>
我希望像这样
ImageUrl='<%# this.ResolveUrl("~/path/to/image/" + Eval("image")) %>' />
而不是string.Format
由于图像存储在数据库中,因此需要使用处理程序来检索图像。你可以在这里得到一个参考 http://www.codeproject.com/Articles/271590/Show-an-image-saved-in-a-SQL-Table-on-an-ASP-Net-I