2012-05-08 11 views
1

私は現在、異なる制約で複数のデータベーステーブルを複数回照会するWebアプリケーションで作業しています。私はASP .NET 3.5 ListViewを利用しています。私は約10の異なるリストビューを持っています。私はテーブル全体を一度だけクエリでき、それをASP .NETリストビューに別々のテーブルに分ける方法がありますか?DBからのデータを含むASP .NETのリストビューをコピーする方法は?

複数のASP .NETリストビューに1つのクエリと出力を利用する方法はありますか? または、1つのSQLデータソースを使用し、2つのリストビューで使用する方法はありますか?

これができない場合は、ASP .NETリストビューを別のASP .NETリストビューにコピーできますか?私はこのコードを試してみたが、私はエラーを取得:

  private void CopySelectedItems(ListView source, ListView target) 
     { 
      foreach (ListViewItem item in source.SelectedItems) 
      { 
       target.Items.Add((ListViewItem)item.Clone()); 
      } 
     } 

エラーは以下のとおりです。

エラー1「System.Web.UI.WebControls.ListView」「selectedItemsの」の定義が含まれていませんし、 'System.Web.UI.WebControls.ListView'型の最初の引数を受け入れる拡張メソッド 'SelectedItems'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

エラー2 'System.Web。 UI.WebControls.ListViewItem 'に' Clone 'の定義がなく、' System.Web.UI.WebControls.ListViewI '型の最初の引数を受け入れる拡張メソッド' Clone 'はありませんtem 'が見つかりました(usingディレクティブまたはアセンブリ参照がありませんか? 'System.Collections.Generic.ICollection.Add(System.Web.UI.WebControls.ListViewDataItem)' の最良のオーバーロードされたメソッドのマッチ3

エラーが

エラー4引数のいくつかの無効な引数を持っている '1':できません'System.Web.UI.WebControls.ListViewItem'から 'System.Web.UI.WebControls.ListViewDataItem'に変換

答えて

2

リストに単一のデータベースクエリを読み込み、リストのWhere拡張メソッドを使用して個々のListViewコントロールにバインドします。

List<MyDataClass> myList = MyDataAccessLayer.GetFromDatabase(); 

ListView1.DataSource = myList.Where(item => item.MyProperty1 == "value1"); 
ListView1.DataBind(); 
... 
ListView10.DataSource = myList.Where(item => item.MyProperty1 == "value10"); 
ListView10.DataBind(); 
:データは、文字列プロパティ MyProperty1を持つクラス MyDataClassにロードされると仮定すると、例えば

関連する問題