是否有可能在datagridviewcell中动态添加图像

本文关键字:动态 添加 图像 datagridviewcell 有可能 是否 | 更新日期: 2023-09-27 18:09:09

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

是否有可能在datagridviewcell中动态添加图像

use TamplateField

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

注意你应该设置图像标签源为相对路径而不是物理路径

编辑

在winforms的情况下,正如你在评论中提到的,你可以在DataGridVeiw中使用DataGridViewImageColumn,并将其DataPropertyName属性设置为一个Image实例。

查看我的简单示例

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;

在这个示例中,我将DataGridViewImageColumnDataPropertyName设置为img property

如果我正确理解你的问题,你有在数据库中的图像url,并希望在gridview中显示这些图像。如果是这样的话,我的建议是静态地向gridview添加一个"asp:Image"标签,并使用"Bind"方法更新"ImageUrl"属性。

希望这有帮助!!