1

次の列を持つ pictures テーブルがあります。

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>

ただし、コードが実行されると、2 つの画像列 (IMGDATA と IMGTHDATA) は単純に無視されます。何らかの理由で、それらが画像列であることを認識しません。画像をレンダリングする最も簡単な方法を知っている人はいますか?

4

2 に答える 2

3

画像をストリームとして返すページを作成し、そのページを画像列 (またはテンプレート列の IMG タグ) から参照できます。GridViewDisplayBlob.aspxを参照してください。

于 2008-10-14T02:29:26.090 に答える
1

これを行うための本当に簡単な方法はありません。基本的に、画像を表示するハンドラを作成する必要があります。次に、グリッドで、画像ハンドラーを指す URL を使用して img タグを作成します。

この例はここにあります。

更新:これのはるかに良い例here

于 2008-10-14T02:27:07.280 に答える