• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バインドするデータを切替えしたい)

バインドするデータを切替えたい - VS2008 C# ASP.NETページ

このQ&Aのポイント
  • VS2008 C#でASP.NETページを作成していますが、1つのFormViewでバインドさせるデータを切り替えたいです。テーブルのカラム数とデータ型は同じで、カラム名だけが異なります。パラメータを使用してselectするテーブルを切り替えることは可能でしょうか?
  • DataBinder.Evalメソッドの第2引数を変更することで、DataBinder.Eval(Container.DataItem, "xxx")をa.xxxからb.xxxに切り替えることは可能でしょうか?
  • VS2008 C# ASP.NETページで、1つのFormViewで複数のテーブルからデータをバインドさせたいです。テーブルのカラム数とデータ型は同じで、カラム名が異なります。selectするテーブルを切り替える方法やDataBinder.Evalメソッドの第2引数の切り替えについて教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • aspnet
  • ベストアンサー率79% (72/91)
回答No.1

C# ASP.NET2.0のケースで説明します。 たとえばDataTable1でデータを取得し直したとして、 this.FormView1.DataSourse = DataTable1.DefaultView(); this.FormView1.DataBind(); とすれば、DataSourceを切り替えることが可能です。 ただし、aspx側でカラムを固定(<%# Eval("userName") %>など)している場合は、新しいデータソースに同一のカラム名が必要になるため、 1.DataTable側のColumnコレクションなどを嬲って、Bind前に一時的に同一のカラム名にしてしまう 2.aspx側に固定カラム名<%# Eval("userName") %>を書かずに、FormViewのデータバインドイベント、OnItemDataBoundを受けて、Bindデータを手動でコントロールに移す 3.aspx側に固定カラム名でなく、Bind時クエリ式、<%# GetUserName() %>などとして、コード側で状況に応じて値を変えてやる などの方法があります。 普通は、データソースの変更ということでなくても、DBのカラムデータをそのまま画面表示することは稀なので、ほとんどは2か3の方法が混用されていると思いますので、よく行われる手法だと思います。

すると、全ての回答が全文表示されます。

関連するQ&A