在单个GridView中显示来自两个GridView的行

时间:2017-09-14 11:41:33

标签: c# asp.net

我的.aspx页面上有两个GridView,两个都有不同的selectMethod,不同的数据但是有相同的HeaderTemplate。我希望我的.aspx只有一个gridView但不同的数据源。有没有可能的方法来完成这项任务。

2 个答案:

答案 0 :(得分:0)

创建一个中间变量来保存合并后的数据,然后将检索到的数据提取到其中(来自两种选择方法),然后将此变量值分配给显示网格*.DataSource,然后调用{{1}方法。

P.S。确保在合并两个源时具有相同的模式,否则您将必须循环每组结果以将其提取并手动将其与另一组合并以获得应在{{1}中呈现的新标准模式然后。

答案 1 :(得分:0)

Hello如果您有多个数据源您可以使用条件将要绑定到gridview的数据源列表

在这种情况下,您可以使用动态列表在运行时动态绑定数据源,因为如果您的数据字段名称相同,则标题字段相同,那么动态列表将非常适合您。

如果您使用BoundFieldtemplatefield或直接绑定数据源,我不确定 由于你没有发布你的代码,我发布了一个示例代码,希望你能通过这个

找到一些东西
//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();
}