在gridview中显示数据库中的图像

时间:2012-05-21 11:07:25

标签: c# asp.net image linq-to-sql gridview

我有一个显示建筑物信息的GridView。我正在从这样的数据库中将信息加载到GridView中:

var buildings = (from t in dc.Towns
                         where (t.userid == userid) && (t.time < DateTime.Now) 
                         join b in dc.Buildings
                             on t.buildingid equals b.buildingid
                             into j1
                         from j2 in j1.DefaultIfEmpty()
                         group j2 by j2.buildingname
                         into grouped
                         select new
                                    {
                                        Building= grouped.Key,
                                        Picture= grouped.First().imagePath,
                                        Number= grouped.Count()
                                    });
        gvBuildings.DataSource = buildings.ToList();
        gvBuildings.DataBind();

但我无法显示图像,它只显示保存的路径。如何在GridView中显示路径中的图像?

2 个答案:

答案 0 :(得分:1)

您必须具有可以显示图像的列类型,使用图像字段并使用该URL设置DataImageUrlField属性,请查看此处了解详细信息:

http://msdn.microsoft.com/en-us/library/aa479350.aspx

答案 1 :(得分:0)

尝试使用Image.FromFile(字符串路径)将图像作为Image对象加载,并将它们放入绑定数据中代替路径。

e.g。

                 select new
                            {
                                Building= grouped.Key,
                                Picture= Image.FromFile(grouped.First().imagePath),
                                Number= grouped.Count()
                            });

当然,您需要一些错误处理,我还建议您将数据访问代码与显示逻辑分开,而不是将其全部放在一个方法中。