ASP.NET- Gridview不在网页上显示图像

时间:2013-12-27 08:55:41

标签: c# asp.net

我一直在努力寻找一种使用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">
            &nbsp;
            <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>

我的代码仍未在网页上显示图片。

请帮助我。 :(

5 个答案:

答案 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)

查看此代码,您将提供 数据源 ,以便您可以这样做

我确信您的数据表有数据和正确的路径

让我们说你的形象在里面

图像/ ClientLogo.png

文件夹

  <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" 
      runat="server">
            </asp:Content>
            <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
            &nbsp;
            <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>