質問: f2; tableRow.Cells.Add(tableCell); } Table1.Rows.Add(tableRow); } ``` foreach(string f2 in Qfiles)文の中にクリックイベントを入れたいと考えているのですが、どのように書けばよいか調べても出てこなかったので、教えていただけたらと思います。
回答: > > ある特定のディレクトリを取得し、そのディレクトリ内のファイルの数だけセルを作り、そのセル、またはセル内の文字がクリックされたら、そのファイルへのパスを利用して、ファイル内の中身の文章をブラウザで表示できるような仕組みを考えています。 > > > テーブルは完成していて、ディレクトリ名 / ファイル名等は期待通り表示されているという理解でいいのですよね? で、質問者さんが知りたいのは「セル内、もしくはセル内の文字がクリック」されたときに何らかのイベントが発生し、「ファイル内の中身の文章をブラウザで表示」するためのトリガとなる「イベント」を発生させる方法ということでいいのですよね? 上記の理解で良いのであれば、以下のような方法が考えられます。 (1) HyperLink コントロールを使う foreach(string f2 in Qfiles) の中に HyperLink コントロールを初期化して追加するコードを書く。 ファイルが何だか分かりませんが、ホルダが IIS の仮想ディレクトリ / アプリケーションに設定されていて、ブラウザからそのファイルの URL を直接要求して開けるものであれば、HyperLink.NavigateUrl プロパティにその URL を設定する。 ブラウザから直接開けなければ、表示するための専用のページを作成し、そのページを HyperLink.NavigateUrl プロパティに設定する。ファイル情報はクエリ文字列で渡す。 (2) クリックするとポストバックが発生するコントロール(Button など)を使う foreach(string f2 in Qfiles) の中にそのコントロールを初期化して追加するコードを書く。その CommandName, CommandArgument プロパティにファイル情報を設定する。 ファイルを表示するための専用のページまたはダウンロードするための HTTP ハンドラを作成する。 サーバー側で発生するクリックイベントで CommandName, CommandArgument プロパティからファイル情報を取得し、専用のページまたはダウンロードするための HTTP ハンドラにクエリ文字列として渡し、リダイレクトする。 上記が NG であれば、具体的にどうしたいのか連絡ください。