質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

3317閲覧

APS.NETのグリッドビューに画像を表示する方法

Kyubi_Leon

総合スコア17

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2019/08/19 12:52

編集2019/08/20 10:16

前提・実現したいこと

表題の通り、APS.NETのグリッドビューに画像を表示したいです。

発生している問題・エラーメッセージ

文字列は表示できるのですが、画像が表示できません

該当のソースコード

C#

1 protected void Button1_Click(object sender, EventArgs e) 2 { 3 List<PictureData> pictureDatas = new List<PictureData>(); 4 var files = Directory.GetFiles(@"C:\Pictures", "*", System.IO.SearchOption.AllDirectories); 5 foreach (var file in files) 6 { 7 8 pictureDatas.Add(new PictureData() 9 { 10 FileName = Path.GetFileNameWithoutExtension(file), 11 Image = new Image() { ImageUrl = file }, 12 ImageField = new ImageField() {DataImageUrlField= file } 13 14 }); 15 } 16 17 18 this.GridView1.DataSource = pictureDatas; 19 this.GridView1.DataBind(); 20 } 21 } 22 23 class PictureData 24 { 25 public string FileName { get; set; } 26 public Image Image { get; set; } 27 public ImageField ImageField { get; set; } 28 }

試したこと

ImagetとImageFieldにパスを設定して、表示しようとしたのですが表示できません。
this.GridView1.Columns.Add(new ImageField() { DataImageUrlField = files[0] });
というようにも試したのですが、ダメでした・・・。

補足情報(FW/ツールのバージョンなど)

開発環境
VisualStudio2019
OS:Windows10 Home 64bit
.NET:.NET Framework4.7.2
データベース:FireBase FireStore 無料プラン
サーバー:Azure 無料プラン

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/19 14:41

https://teratail.com/questions/206334 ←こういう話を解決する気がないようですけど、それでは話にならないと思いますよ。
退会済みユーザー

退会済みユーザー

2019/08/20 01:32

先のスレッド https://teratail.com/questions/206334 の話はやってることがメチャクチャで、何も知らないで適当に作ったという感じがします。対症療法的に解決したようですが真の解決にはなってないです。 もし先のスレッドから真の解決策を取らないまま先に進んでここのスレッドの質問に至ったとすると、ベースがメチャクチャなので答えても無駄ということになる可能性大です。 ASP.NET と言っても、Web Forms, MVC, Web API, Web Pages など色々あります。あなたの目的にどれが合っているかを考えて選んでください。それができる程度の知識は最低限必要です。 GridView は Web Forms のコントロールですが、Web Forms で話を進めていって、後になって Web Forms は時代遅れだから止めて、MVC に方向転換するなんてことはナシでお願いします。 よく考えて、どれにするか決めて連絡してください。話はそれからだという感じです。 なお、その際、開発環境(OS, .NET のバージョン、DB サーバーは何かとそのバージョン・エディションなど)を質問欄を編集して書いてください。
Kyubi_Leon

2019/08/20 10:16

>もし先のスレッドから真の解決策を取らないまま先に進んでここのスレッドの質問に至ったとすると、ベースがメチャクチャなので答えても無駄ということになる可能性大です。 すみません、C#でフォームアプリケーションは2年弱開発経験があるのですが、WEB系は全く触ったことがないので、基礎から教えていただけたらと思います。 >ASP.NET と言っても、Web Forms, MVC, Web API, Web Pages など色々あります。あなたの目的にどれが合っているかを考えて選んでください。それができる程度の知識は最低限必要です。 フォームアプリケーションでの開発の経験はあるので、今回は一番似ているWebFormで開発を行おうと思います。 確かに、MVCで作るというのが最近のトレンドのようですが、完成できずに挫折してしまっては元も子もないので、確実に進められるであろうWebFormを使用しようと思います。 MVCはWebFormを理解したあとに、別のサービスを作るときに使用しようと思います。 目標は「質問箱」のようなサービスを作ることです。 もちろん、処理内容は全く違いますが、ツイッター連携のウェブアプリケーションを作ろうと考えています。 >OS, .NET のバージョン、DB サーバーは何かとそのバージョン・エディションなど)を質問欄を編集して書いてください。 追記しました。
退会済みユーザー

退会済みユーザー

2019/08/22 05:42

回答しましたけどそれに対するフィードバックを礼儀として返しましょう。読んだ/読まなかった、理解できた/できなかった、役に立った/立たなかったぐらいは言えるはず。
Kyubi_Leon

2019/08/23 22:42

私生活が多忙で、返信できていませんでした。 申し訳ありません。
guest

回答1

0

ベストアンサー

データベース:FireBase FireStore 無料プラン

Firebase とかは全く分からないので、それ用のプロバイダがあるのかとか、ADO.NET で使えるのかどうか分かりませんが、質問には「文字列は表示できる」と書いてあったのでそのあたりは問題ないのであろうということで・・・

GridView はそれが html に変換されて table, tr, th, td などの要素になるのですが、画像を表示するには td 要素の中に img 要素を入れてその src 属性に画像が存在する URL を設定することになります。

ImageField を使うなら以下の記事を見てください。

ImageField.DataImageUrlField Property
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.ui.webcontrols.imagefield.dataimageurlfield?view=netframework-4.8

記事で使っている SQL Server の Employees テーブルの LastName 列は以下のようになっています。

イメージ説明

なので、アプリケーションルート直下に Images というフォルダがあって、それに <LastName>.jpg
という画像ファイルがあればそれが表示されるということになります。

Images フォルダと画像ファイルを作って試してみてください。それで様子が分かると思います。

投稿2019/08/20 14:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/22 06:08

回答しましたけどそれに対するフィードバックを礼儀として返しましょう。読んだ/読まなかった、理解できた/できなかった、役に立った/立たなかったぐらいは言えるはず。
Kyubi_Leon

2019/08/23 22:43

私生活が多忙で、返信できていませんでした。 申し訳ありません。 上記の方法で問題なく表示できました。 ありがとうございました。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問