2011-11-02 4 views
1

코드 숨김에서 작성된 gridview가 있습니다.gridview에있는 열 중 하나를 이미지로 만드는 방법은 무엇입니까?

아래 코드에서 세 번째 열을 일부 이미지로 지정하고 싶습니다 (예 : PDF 아이콘 또는 유사).

"Image"란에 대해 Type.GetType을 변경해야한다고 생각합니까 ??

DataTable dt = new DataTable(); 
GridView gview = new GridView(); 
DataRow dr; 
DataColumn dc = new DataColumn("Description", Type.GetType("System.String")); 
dt.Columns.Add(dc); 
dc = new DataColumn("Image", Type.GetType("System.String")); 
dt.Columns.Add(dc); 
dc = new DataColumn("Size (MB)", Type.GetType("System.String")); 
dt.Columns.Add(dc); 
{ 
    dr = dt.NewRow(); 
    dr["Description"] = item["Name"]; 
    dr["Size (MB)"] = item["Size"]; 
    dr["Image"] = "pdf.gif"; // put complete reference here, 
    dt.Rows.Add(dr); 
} 
gview.DataSource = dt; 
gview.DataBind(); 
Controls.Add(gview); 

답변

3

이미지 URL을 실제 이미지가 아닌 DataTable에 저장하면됩니다. 그런 다음, ItemTemplate 당신의 GridView에서 TemplateField를 사용에 이미지를 넣어 :

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrlColumn") %>' ... /> 
    </ItemTemplate> 
</asp:TemplateField> 

또한 사용할 수있는 ImageField :

<asp:ImageField DataImageUrlField="ImageNameColumn" DataImageUrlFormatString="/images/{0}"></asp:ImageField> 

편집

열을 선언, 이것을 시도 대신 :

dt.Columns.Add("Image", typeof(string)); 

그리고 이미지 컬럼의 값을 설정하려면 다음을 수행하십시오

그리드보기에서
dr.SetField<string>("Image", "img.png"); 
+0

나는 완전히 따라갈 수 없었다. ImageUrlColumn은 어디에 정의해야합니까? 코드 비헤이비어에서 정의하는 열 이름입니까? – Anirudh

+0

DataTable에 이미지를 저장하는 대신 이미지 경로 (예 :'/ images/somepic.png') 만 저장하면됩니다. 'ImageUrlColumn'은 아이디어를 보여주기위한 것입니다. –

+0

나는 (첫 번째 게시물에 게시 된) 경로 만 저장하고 있으며 언급 한 경로가 경로에 포함됩니다. 난 아직도 당신이 언급 한 templatefield/itemfield를 가져야하고 그리드 뷰에서 연결할 필요가있는 곳이 필요한 이유를 얻지 못하고있다. 명확히하십시오. thanks – Anirudh

0

는 다음

같은 gridview에 속성을 설정 한 다음

<asp:CommandField runat="server" ShowDeleteButton="true" ButtonType="Image" DeleteImageUrl="images/delete.png" ></asp:CommandField>

같은 명령 필드 열을 넣어

AutoGenerateDeleteButton = "false"

관련 문제