动态地将图像添加到asp.net c#gridview中

时间:2014-01-28 23:13:30

标签: c# asp.net image gridview

我想在gridview中显示图像。我的gridview正在填充如下: 前:

        <asp:GridView 
    ID="GridViewProduct"
    runat="server" 
    CellPadding="4" 
    GridLines="Horizontal"
    AutoGenerateColumns="False"
    width="1020"
    onrowcommand="GridViewCase_RowCommand">
        <Columns>
            <asp:BoundField DataField="ID" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="IDKolonne" HeaderText="Id" ItemStyle-Width="40px" HeaderStyle-CssClass="header"/>
         <asp:ImageField DataImageUrlField="idimg" NullImageUrl="images/thumbs/2.jpg">
            <ControlStyle Height="40px" Width="40px" />
            </asp:ImageField>

            <asp:buttonfield buttontype="Image" ItemStyle-HorizontalAlign="Center"  ImageUrl="~/img/trash.png" commandname="Del" text="Slet Produkt" HeaderText="Slet Produkt"/>
            <asp:buttonfield buttontype="Image" ItemStyle-HorizontalAlign="Center"  ImageUrl="~/img/change.png" commandname="Select" text="Se / Ret" HeaderText="Se / Ret"/>
        </Columns> 
    </asp:GridView>

如您所见,我能够插入静态图像。我想从我的数据库中提到ID的广告图片。我的gridview建立如下:

    DataTable table = new DataTable();
    table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("idimg", typeof(System.Drawing.Image));

    DataTable dt = new DataTable();
    dt = galFac.getCurrentUsersElements(3);

    if (dt.Rows.Count > 0)
    {
        foreach (DataRow item in dt.Rows)
        {
            table.Rows.Add(item["Id"]);
        }

        GridViewProduct.DataSource = table;
        GridViewProduct.DataBind();

        GridViewProduct.UseAccessibleHeader = true;            
    }

这怎么可能? 感谢。

1 个答案:

答案 0 :(得分:0)

您只需将“图像路径”作为字符串参数传递给gridview数据源,并在gridview上使用以下asp:Image

<asp:Image id="abc" ImageUrl =<%#Eval("column_name_image"))%>

aspx.cs代码是这样的:

DataTable table = new DataTable();
table.Columns.Add("ID", typeof(System.Int32));
table.Columns.Add("column_name_image", typeof(string));

.....
.....
.....

GridViewProduct.DataSource = table;
GridViewProduct.DataBind();