2016-09-19 11 views
0

私は簡単に実装した文字列フィールドとその情報に沿ったイメージを必要とするasp.netを使用して情報を表示する作業があります。私は自分のグリッドビュー内の画像フィールドを使って画像を表示しようとしましたが、画像を表示するにはURLを持っています。しかし、私はbase64文字列として格納されている画像を表示する方法を理解しようとしています。私は、テンプレートフィールドを使ったり、HTMLでbase64を表示する文字列に画像URLを設定しようとしたり、base64を画像に変換したりするなど、画像を表示したり表示したりするためのさまざまな方法を試しました。動作するようです。今私は手動でデータテーブルを使用して手動で行を作成するだけでデータを追加しようとしています。いずれかの画像ビューでbase64文字列をどのように使うことができるか考えている人は、私は大いに感謝します。ASP.Net GridviewにBase64文字列を表示する

私が作成したgridviewのコードです。

<asp:GridView ID="GridView1" HeaderStyle-BackColor="#FF0000" HeaderStyle-ForeColor="White" 
     runat="server" AutoGenerateColumns="false" enabled="false"> 
     <Columns> 
      <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="30" /> 
      <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="30" /> 
      <asp:BoundField DataField="Account" HeaderText="Account Number" ItemStyle-Width="30" /> 
      <asp:ImageField DataImageURLField="ImageURL" HeaderText="Image" /> 
     </Columns> 
</asp:GridView> 

ここで私は今、gridviewにエントリを作成しています。

DataTable dt = new DataTable(); 
     dt.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)), 
         new DataColumn("Name", typeof(string)), 
         new DataColumn("Account",typeof(string)), 
         new DataColumn("ImageURL",typeof(string))}); 

     string URL = "data:image/jpg;base64,"; 

     string encodedString = //base64 string here 


     URL += encodedString; 

     dt.Rows.Add(1, "Steve", "************1111", URL); 

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 

答えて

0

信じられないほどハックが、それは動作します:

のGridView:

<asp:GridView ID="GridView1" HeaderStyle-BackColor="#FF0000" HeaderStyle-ForeColor="White" 
    DataSource='<%# GetData() %>' runat="server" AutoGenerateColumns="false" enabled="false"> 
    <Columns> 
     <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="30" /> 
     <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="30" /> 
     <asp:BoundField DataField="Account" HeaderText="Account Number" ItemStyle-Width="30" /> 
     <asp:BoundField DataField="ImageURL" HeaderText="Image" HtmlEncode="false" /> 
    </Columns> 
</asp:GridView> 

コードビハインド:何らかの理由で

public DataTable GetData() 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)), 
       new DataColumn("Name", typeof(string)), 
       new DataColumn("Account",typeof(string)), 
       new DataColumn("ImageURL",typeof(string))}); 

    string URL = "data:image/jpeg;base64,"; 

    string encodedString = ""; // base64-encoded image data goes here 

    URL += encodedString; 

    URL = $"<img src=\"{URL}\">"; 

    DataRow dr = dt.NewRow(); 

    dr["ID"] = 1; 
    dr["Name"] = "Steve"; 
    dr["Account"] = "************1111"; 
    dr["ImageUrl"] = URL; 

    dt.Rows.Add(dr); 

    return dt; 
} 
+0

私は、このURLのようなコードを使用しようとしました= $ "";私は予期せぬ文字 '$'、無効な表現用語 ''、および予想されるエラーを与え続けています。なぜ私がチェックしていて、すべてが整然としているように見えるのか、また現在のGridView1には問題があります。コード内にテーブルを表示しようとしたときの文脈 – Ramirez77

+0

代わりにこれを試してください: 'URL =" ";' –

+0

それは完璧に動作していますありがとう、それはちょっとハッキーですがねえ、私は頭にそれを理解するために数日間壁をつけてください。 – Ramirez77

関連する問題