2015-01-05 5 views
2

이미지 경로가 데이터베이스에 저장되고 이미지가 서버에 저장되는 기능을 구현했습니다.gridview (복수 이미지)의 이미지 표시

이제 이미지를 업로드 할 때마다 경로가 테이블에 저장되고 거기에서 이미지가 gridview에 표시되기를 원합니다.

이미지를 표시하기 위해 gridview를 만들었습니다. 현재 해당 열에서 Image_path을 가져 와서 경로 대신 Images을 표시하려고합니다. 테이블에 이미지를 삽입

<asp:GridView ID="grdGalleryData" runat="server" Width="100%" border="1" 
       Style="border: 1px solid #E5E5E5;" CellPadding="3" AutoGenerateColumns="False" 
       AllowPaging="True" PageSize="2" CssClass="hoverTable" DataKeyNames="Id"> 
    <AlternatingRowStyle BackColor="#CCCCCC" /> 
    <Columns> 
     <asp:TemplateField HeaderText="Select" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td"> 
      <ItemTemplate> 
       <asp:CheckBox ID="chkDelete" runat="server" /> 
      </ItemTemplate> 
      <HeaderStyle CssClass="k-grid td"></HeaderStyle> 
      <ItemStyle Width="30px"></ItemStyle> 
     </asp:TemplateField> 
     <asp:BoundField DataField="gallery_id" HeaderText="Id" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td" /> 
     <asp:BoundField DataField="image_title" HeaderText="Gallery title" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td" /> 
     <asp:BoundField DataField="image_description" HeaderText="Gallery Description" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td" /> 
     <asp:BoundField DataField="image_path" HeaderText="Images" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td" /> 
    </Columns> 
</asp:GridView> 

코드 뒤에 :

또한

, GRIDVIEW의 코드를 참조하십시오 -

protected void btnAdd_Click(object sender, EventArgs e) 
{ 
    if (FileUpload1.HasFile == false) 
    { 
     ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('Please select the file.')</script>", false); 
    } 
    else 
    { 
     foreach (var file in FileUpload1.PostedFiles) 
     { 
      string filename = Path.GetFileName(file.FileName); 

      FileUpload1.SaveAs(Server.MapPath("/GalleryImages/" + filename)); 

      SqlCommand cmd = new SqlCommand("Insert into tbl_gallery_stack(gallery_id, image_title, image_description, image_path) values (@gallery_id,@image_title,@image_description,@image_path)", conn); 

      cmd.Parameters.AddWithValue("@gallery_id", ddlImagesId.SelectedValue); 
      cmd.Parameters.AddWithValue("@image_title", txtImageTitle.Text); 
      cmd.Parameters.AddWithValue("@image_description", txtImageDescription.Text); 
      cmd.Parameters.AddWithValue("@image_path", filename); 
      conn.Open(); 
      cmd.ExecuteNonQuery(); 
      BindGrid(); 
     } 
    } 
} 

나를 여기에있는 gridview에 이미지를 표시하는 방법을 알려주세요 .

+0

사용하여 이미지를 제어 할 수 있습니다. –

+0

asp : imagefield를 사용하십시오 http://msdn.microsoft.com/en-us/library/aa479350.aspx –

+0

@ 그것을 시도해보십시오 ... !! – BNN

답변

1

변경이 : 여기에

<asp:BoundField DataField="image_path" HeaderText="Images" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td" /> 

: 나딤에서

<asp:TemplateField HeaderText="Images" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td"> 
    <ItemTemplate> 
     <asp:Image ID="img" runat="server" ImageUrl='<%# Bind("image_path") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

업데이트. 영문 파일에서

: 뒤에

<asp:TemplateField HeaderText="Images" ItemStyle-Width="25" HeaderStyle-CssClass="k-grid td"> 
    <ItemTemplate> 
     <asp:Image ID="imgDisplay" runat="server" ImageUrl='<%#Getimage(Eval("image_path").ToString()) %>' Width="100px" Height="100px" /> 
    </ItemTemplate> 
</asp:TemplateField> 

코드 : 템플릿 필드 대신 바운드 분야에서

protected string Getimage(string img) 
{ 
    if (img != "") 
     return ("~/GalleryImages/" + img); 
    else 
     return ("Images/noimg.gif"); 
} 
+0

을 따르십시오. 모든로드에서 gridview를 볼 수 없습니까? – BNN

+0

이미지가 나오지 않습니다. 경로 문제가 발생했습니다. – BNN

+0

@ NadeemKhan 깨진 이미지가 보이십니까? 마우스 오른쪽 버튼으로 클릭 한 다음 속성을 클릭하여 경로를 확인하십시오. – dario