2016-09-19 6 views
0

쉽게 구현 한 문자열 필드와 정보와 함께 사용할 이미지가 필요한 asp.net을 사용하여 정보를 표시하는 작업이 있습니다. 나는 그들과 함께 갈 URL이있는 이미지를 위해 잘 작동하는 그림을 표시하기 위해 gridview 내 이미지 필드를 사용하여 시도했다. 그러나 나는 base64 문자열로 저장된 이미지를 표시하는 방법을 찾아 내려고 노력했습니다. 나는 템플릿 필드를 사용하거나 이미지 URL을 html로 base64를 표시하는 문자열로 설정하는 등의 방법으로 이미지를 표시하고 시도하는 모든 종류의 방법을 시도했으며 심지어 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에 항목을 만들 수있는 C# 코드가 있습니다.

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