0

OLEDB SQL Serverからデータを取得してgridviewに表示したいのですが、 Image以外のデータを取得できます。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AutoGenerateColumns="False" DataSourceID="SqlDataSource1" 
        EnableModelValidation="True" Height="184px" Width="546px">
        <Columns>
            <asp:BoundField DataField="col_FirstName" HeaderText="col_FirstName" 
                SortExpression="col_FirstName" />
            <asp:BoundField DataField="col_LastName" HeaderText="col_LastName" 
                SortExpression="col_LastName" />
            <asp:BoundField DataField="col_age" HeaderText="col_age" 
                SortExpression="col_age" />
            <asp:BoundField DataField="col_photo" HeaderText="col_photo" 
                SortExpression="col_photo" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
        SelectCommand="SELECT [col_FirstName], [col_LastName], [col_age], [col_photo] FROM [tbl_PersonInfo_Test]">
    </asp:SqlDataSource>`
4

2 に答える 2

1

このコードで試すことができます-asp:ImageFieldに基づいています

<asp:ImageField DataImageUrlField="col_photo"></asp:ImageField>

リンク: http://msdn.microsoft.com/en-us/library/aa479350.aspx

そして、このコードを置き換えます

<asp:BoundField DataField="col_photo" HeaderText="col_photo" SortExpression="col_photo" />

2 番目のソリューション - に基づくtemplate field

<asp:TemplateField HeaderText="Status" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate> 
         <asp:Image ID="photo" runat="server" ImageUrl="<%# DataBinder.Eval(Container.DataItem, "col_photo")%>"  />
    </ItemTemplate> 
</asp:TemplateField>
于 2012-09-19T08:03:53.437 に答える
0

dataBaseで binaryFieldを使用しているため、単純な imageHandler クラスを作成できます。このクラスは、データ ストレージからImageをロードし、それをresponseStream書き込む方法を認識しています。非常に大まかな例については、以下を参照してください。

imageHandler.aspx

protected void Page_Load(object sender, EventArgs e)
{
  if (Request.QueryString["ID"] != null)
  {
      int id = Convert.ToInt32(Request.QueryString["ID"]);

      // query your dataStorage for col_photo according to the current id
      // ...

      // access your binaryColumn
     Byte[] bytes = (Byte[])dt.Rows[0]["col_photo"]; // adapt in case you use ExecuteScalar()
     Response.Buffer = true;
     Response.Charset = "";
     Response.Cache.SetCacheability(HttpCacheability.NoCache);
     Response.ContentType = "image/jpeg";
     Response.BinaryWrite(bytes);
     Response.Flush();
     Response.End();
}

ASPX

// don't forget to add the pkColumn to your select statement!!
<asp:ImageField DataImageUrlField="YOUR_PK_COLUMN" 
 DataImageUrlFormatString="imageHandler.aspx?ID={0}"
 ControlStyle-Width="100" ControlStyle-Height="100"/>

Web でいくつかの例を見つけることができます。gridViewsまたはImagesFromDBinGridViewでの画像の表示を参照するか、Mr. Googleに尋ねてください。

于 2012-09-19T09:24:34.930 に答える