是否可以动态地在datagridview单元格中添加图像?

时间:2011-09-21 15:02:27

标签: c# .net image datagridview

我正在开发一个小应用程序,其中我必须包含来自SQL的其他数据的图像,但图像应该来自本地磁盘,具体取决于数据库中的文件名。有可能做到吗?如何?

先谢谢了!

2 个答案:

答案 0 :(得分:1)

使用TamplateField

<asp:GridView ID="myGridView" runat="server">
  <Columns>
    <asp:TemplateField>
        <ItemTemplate>
             <img src="<%#Eval("FileName")%>" alt="NoImage">
        </ItemTemplate> 
    </asp:TemplateField>
  </Columns>
</asp:GridView>

请注意,您应将图像标记源设置为相对路径而非物理路径

修改

如您在评论中提到的winforms,您可以在DataGridViewImageColumn中使用DataGridVeiw并将其DataPropertyName属性设置为图片实例。

检查我的简单示例

class MyDataSource
{
    // its value come from your database but now I will set it manually
    public String imgurl
    {
        get;
        set;
    }
    public Image img
    {
        get
        {
            return Image.FromFile(imgurl);
        }
    }
}

in from load

List<MyDataSource> mydatasource = new List<MyDataSource>();
mydatasource.Add(new urls() { imgurl = @"C:\image1.jpg" });
mydatasource.Add(new urls() { imgurl = @"C:\image2.jpg" });
mydatasource.Add(new urls() { imgurl = @"C:\image3.jpg" });
mydatasource.Add(new urls() { imgurl = @"C:\image4.jpg" });

//bind this collection to your datagridview
dataGridView1.DataSource = mydatasource;

在此示例中,我将DataPropertyName的{​​{1}}设置为DataGridViewImageColumn属性

答案 1 :(得分:0)

如果我正确理解了您的问题,您在数据库中有图像网址,并希望在网格视图中显示这些图像。如果是这样,我的建议是静态地向gridview添加一个“asp:Image”标签,并使用“Bind”方法更新“ImageUrl”attr。

希望这会有所帮助!!