代码之家  ›  专栏  ›  技术社区  ›  fuentesjr

如何使用ASP.NET 2.0中的数据集使GridView加载图像?

  •  1
  • fuentesjr  · 技术社区  · 16 年前

    我有一个图片表,它有以下列:

    PICTURE_ID int IDENTITY(1000,1) NOT NULL,
    CATEGORY_ID int NOT NULL,
    IMGDATA image NOT NULL,
    CAPTION1 text COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    MIME_TYPE nchar(20) NOT NULL DEFAULT ('image/jpeg'),
    IMGTHDATA image NOT NULL
    

    在我的代码背后,我有:

    string tableName = "CATPICS";
    SqlConnection dbConnection = new SqlConnection(connStr);
    SqlDataAdapter daCatPics = new SqlDataAdapter("SELECT TOP(3) * FROM CATEGORY_PICTURES", dbConnection);
    DataSet dsPics = new DataSet();
    daCatPics.Fill(dsPics, tableName);
    
    gvCatPics.DataSource = dsPics;
    gvCatPics.DataMember = tableName;
    gvCatPics.DataBind();
    

    在标记上,我几乎有:

    <asp:GridView ID="gvCatPics" runat="server"></asp:GridView>
    

    但是,当代码执行时,它只忽略两个图像列(imgdata和imgthdata)。由于某些原因,它无法识别它们是图像列。有人知道让它渲染图像的最简单方法吗?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Steven A. Lowe    16 年前

    您可以创建一个将图像作为流返回的页面,并从图像列(或模板列中的img标记)引用该页面;请参见 GridViewDisplayBlob.aspx

        2
  •  1
  •   Bryant    16 年前

    要做到这一点,没有真正简单的方法。基本上,您需要创建一个处理程序来显示图像。然后在网格中,您将创建一个IMG标记,其URL指向您的图像处理程序。

    可以找到一个这样的例子 here .

    更新: 更好的例子 here .