gridview图像列问题

时间:2009-09-22 04:49:21

标签: c# asp.net

**在vs05 C#asp.net上工作。**我的SQL语法是:****

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Images]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Images]
GO

CREATE TABLE [dbo].[Images] (
    [ID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
    [ImageName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Image] [image] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

我想在网格视图中显示此图像表值.....我这样做...但图像值无法显示.... grid.net的asp.net语法是

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="ImageName" HeaderText="ImageName" />
                <asp:TemplateField HeaderText="Image">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Image") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Image") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

我在 pageload 事件中编写以下代码。我希望图像表格值必须在页面加载时显示...

string strSQL = "Select  *  From Images";
    DataTable dt = clsDB.getDataTable(strSQL);
    this.GridView2.DataSource = dt;
    this.GridView2.DataBind();

为什么我没有在gridview的image列上获取图像.....问题是如何解决?

2 个答案:

答案 0 :(得分:0)

您无法在ASP.NET服务器控件中使用<%# Eval("Image") %>语法。我建议你改用普通的<img>。像这样:<img src='<%# Eval("Image") %>' />

查看此this article from 4 Guys From Rolla,它处理在SQL Server数据库中处理存储为blob的图像。特别是“显示二进制内容”部分与您的案例特别相关。或者这个非常类似的SO问题,What’s the best way to display an image from a sql server database in asp.net?

答案 1 :(得分:0)

使用处理程序在Gridview中显示图像。这是从数据库显示图像的简单常用方法。

Check this link