0

建物からの情報を表示する 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 のパスから画像を表示するにはどうすればよいですか?

4

2 に答える 2

1

画像を表示できる列タイプが必要です。画像フィールドを使用し、その URL で DataImageUrlField プロパティを設定します。詳細については、こちらを参照してください。

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

于 2012-05-21T11:25:51.983 に答える
0

Image.FromFile(string path) を使用して画像を Image オブジェクトとして読み込んで、パスの代わりにバインド データに配置してみてください。

例えば

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

もちろん、何らかのエラー処理が必要になります。また、データ アクセス コードを表示ロジックから分離することをお勧めします。すべてを 1 つのメソッドにまとめるのではありません。

于 2012-05-21T11:18:38.570 に答える