在gridview中显示图像(多个图像)

时间:2015-01-05 13:00:19

标签: c# asp.net image gridview

我已经实现了一个功能,其中Images路径存储在数据库中,Images存储在服务器中。

现在,我想要的是每当上传图像时,路径应该保存在表格中,从那里我希望图像显示在网格视图中。

我已经制作了一个用于显示图片的网格视图,目前正在该列中的Image_path我要显示Images而不是路径。

另外,请参阅Gridview的代码:

<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>

将图像插入表格后面的代码: -

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中显示图片。

1 个答案:

答案 0 :(得分: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>

从Nadeem更新。

在ASPX文件中:

<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");
}
相关问题