C# datagridview 如何显示动态图片
因为C#代码在编译完成之后,显示在页面上时显示的是html代码。这个时候datagridview 他会被编译成<table></table>在table里显示图片的地方肯定是<img>标签来展示你的这个动态图片 。如果你写的路径没问题,图片也在那个目录下存在的话 肯定是会出现的。
具体代码是这个样子
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<!--这个是服务器控件的引用图片的方法-->
<asp:Image ImageUrl="路径" runat="server" />
<!--这个是Html标签的引用图片的方法-->
<img src="路径" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
不知道你还会不会出问题 。如果还有问题可以直接M我QQ 179449057
DataGridViewImageColumn column = new DataGridViewImageColumn();
column.Name = "Image";
column.ValuesAreIcons = false;
column.Image = new Bitmap("C:\\null.gif");
column.ImageLayout = DataGridViewImageCellLayout.Zoom;
column.Description = "图片";
DataGridView1.Columns.Add(column);
// 变更图片
DataGridView1["Image", 0].Value = new Bitmap("C:\\top.gif");
请参考下列C# 代码:
private
void
Form2_Load(object
sender, EventArgs e)
{
//
01 如果图片存到数据库的Image字段类型中,用下面的方式直接绑定不需要转换
//
以 Northwind 的 Employees 表为例
//using
(SqlDataAdapter da = new SqlDataAdapter(
//
"SELECT EmployeeID,LastName,FirstName,BirthDate,Photo FROM
Employees",
//
"server=XXY;database=Northwind;Integrated
Security=SSPI"))
//{
//
DataSet ds = new DataSet();
//
da.Fill(ds);
//
BindingSource bs = new BindingSource(ds.Tables[0],
null);
//
this.dataGridView1.DataSource = bs;
//}
//
02 如果数据库中只是存到路径,可以在 Table 中动态添加 Image 类型字段,通过 Url 将图片下载下来,并保存到 Table
中
DataTable dt = new
DataTable();
dt.Columns.Add("Col1",
typeof(Int32));
dt.Columns.Add("Col2",
typeof(String));
dt.Rows.Add(new
object[]
{ 1, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
});
dt.Rows.Add(new
object[]
{ 2, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
});
//
增加一个字段将 url 转换为 image
dt.Columns.Add("Col3",
typeof(Image));
WebClient webClient = new
WebClient();
foreach
(DataRow row in
dt.Rows)
{
//
如果图片在本地,可不用下载直接使用
Image.FromFile
string
fileName = Path.Combine(@"C:\",
Guid.NewGuid().ToString() + ".jpg");
webClient.DownloadFile(row["Col2"].ToString(),
fileName);
row["Col3"]
= Image.FromFile(fileName);
}
BindingSource bs = new
BindingSource(dt, null);
this.dataGridView1.DataSource
= bs;
}
广告 您可能关注的内容 |