我一直在努力寻找一种使用gridview在网页上显示图像的方法。填充网格视图我正在使用数据表。它没有给出任何错误,但没有显示图像。
这是我的代码。
DataTable validationGraph = new DataTable();
DataColumn dcol = new DataColumn("FilePath", typeof(Image));
validationGraph.Columns.Add(dcol);
Image img = new Image();
img.ImageUrl = "~/ClientLogo.png";
img.DataBind();
DataRow drow = validationGraph.NewRow();
drow["FilePath"] = img;
validationGraph.Rows.Add(drow);
ValidationsGridView.DataSource = validationGraph;
ValidationsGridView.DataBind();
这是该代码的html:
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent"
runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView ID="ValidationsGridView" runat="server" AutoGenerateColumns = "False"
Font-Names = "Arial" >
<Columns>
<asp:ImageField DataImageUrlField="FilePath" ControlStyle-Width="100"
ControlStyle-Height = "100" HeaderText = "Preview Image"/>
</Columns>
</asp:GridView>
</asp:Content>
我的代码仍未在网页上显示图片。
请帮助我。 :(
答案 0 :(得分:0)
我认为你不需要Image对象。据我记忆,你的datacolumn应该是string类型(因为它只保存一个路径)
DataColumn dcol = new DataColumn("FilePath", typeof(string));
并且您的字段的值应该只是路径:
drow["FilePath"] = "/ClientLogo.png";
答案 1 :(得分:0)
您可以尝试在项目模板
中添加带有img标签的图片 <Columns>
<asp:TemplateField HeaderText="Preview Image">
<ItemTemplate>
<img src="path" /></ItemTemplate>
</asp:TemplateField>
</Columns>
答案 2 :(得分:0)
看起来你想用字节类型绑定img而不是img Path?
如果你想要ImageField按文件路径显示img
你可以像这样使用
DataTable validationGraph = new DataTable(); DataColumn dcol = new DataColumn("FilePath", typeof(string)); validationGraph.Columns.Add(dcol); DataRow drow = validationGraph.NewRow(); drow["FilePath"] = "~/ClientLogo.png"; validationGraph.Rows.Add(drow); ValidationsGridView.DataSource = validationGraph; ValidationsGridView.DataBind();
你需要确保“〜/ ClientLogo.png”是正确的img路径
希望它可以解决您的问题
答案 3 :(得分:0)
查看此代码,您将提供 数据源 ,以便您可以这样做
我确信您的数据表有数据和正确的路径
让我们说你的形象在里面
文件夹
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent"
runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView ID="ValidationsGridView" runat="server" AutoGenerateColumns = "False"
Font-Names = "Arial" >
<Columns>
<asp:ImageField ImageUrl='<%#"~/images/" +(DataBinder.Eval(Container.DataItem, "FilePath").ToString())%>' ControlStyle-Width="100"
ControlStyle-Height = "100" HeaderText = "Preview Image"/>
</Columns>
</asp:GridView>
</asp:Content>
答案 4 :(得分:0)
试试这个:
后端代码(.cs文件):
DataTable validationGraph = new DataTable();
DataColumn dcol = new DataColumn("FilePath", typeof(Image));
validationGraph.Columns.Add(dcol);
DataRow drow = validationGraph.NewRow();
drow["FilePath"] = "~/ClientLogo.png";;
validationGraph.Rows.Add(drow);
ValidationsGridView.DataSource = validationGraph;
ValidationsGridView.DataBind();
前端代码(aspx文件):
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView ID="ValidationsGridView" runat="server" AutoGenerateColumns = "False" Font-Names = "Arial" >
<Columns>
<asp:ImageField DataImageUrlField=<%# Eval("FilePath") %> ControlStyle-Width="100"
ControlStyle-Height = "100" HeaderText = "Preview Image"/>
</Columns>
</asp:GridView>
</asp:Content>