2017-09-14 6 views
0

私の.aspxページに2つのGridViewがあり、どちらもselectMethodが異なり、異なるデータですが同じHeaderTemplateを持っています。 .aspxにはgridViewは1つしかありませんが、データソースは異なります。この作業を達成する方法はありますか?1つのGridView内の2つのGridViewの行を表示します

+0

て何かを見つけることを願ってのサンプルコードを掲載していますことを確認していませんあなたのリストをマージし、最後のリストを最終的なデータグリッドにバインドすることができます。 –

答えて

0

こんにちはあなたは複数のデータソースがある場合は、あなたがあなたとして実行時に動的にデータソースをバインドするために動的リストを使用することができます。この場合、あなたのGridViewに

をバインドしたい条件そのデータソースのリストを使用することができますヘッダーフィールドは、データフィールド名が同じであれば動的リストはあなたにとって完璧です。

私はあなたがあなたのコードを投稿didntのとおり、データソース を結合BoundFieldまたはtemplatefieldまたは直接を使用した場合、私はあなたがあなたがこの

//Suppose YOur Lists are List1 and List2 then 

If(Condition1==true) 
{ 
List1 // Your datasource list 
List<dynamic> data = new List<dynamic>(); 
foreach(var data in List1) 
{ 
data.Add(new { 
Name =data.Name, 
Address = data.Address 
}); 
    } 

GridView1.DataSource = data 
GridView1.DataBind(); 
} 

///For Condition 2 

If(Condition2==true) 
{ 
List2 // Your second datasource list 
List<dynamic> data = new List<dynamic>(); 
foreach(var data in List2){ 
data.Add(new { 
Name =data.Name, 
Address = data.Address 
}); 
} 
GridView1.DataSource = data 
GridView1.DataBind(); 
} 
0

マージされたデータを保持するための中間変数を作成し、取得したデータを両方の選択メソッドからフェッチし、この変数値をグリッド表示*.DataSourceに割り当ててから*.DataBind();メソッドを呼び出します。

P.S. 2つのソースをマージして同じスキーマを持つことを確認してください。そうでなければ、すべての結果セットをループして抽出し、手動で他のセットとマージして、新しい標準スキーマをGridViewにレンダリングする必要があります。

+0

ありがとうございました。このリンクやあらゆるリンクに関する考え方のコードはありますか? –

+0

あなたのコードブロックを共有することができます、私たちは直接それを動作させます。あなたの両方の機能が戻ってきているリストを想定し... ' VAR結果=新しいリスト() ;: またはここには一例です foreach(YourFirstFunction()内のvar項目) result.add(item); foreach(YourSecondFunction()内のvarアイテム) result.add(item); yourGridView.DataSource = result; yourGridView.DataBind(); ' – aelagawy

関連する問題