2011-05-17 102 views
1
<asp:ListView ID="ListView1" runat="server" GroupItemCount="5"> 
    <LayoutTemplate> 
     <table runat="server" id="table1"> 
      <tr runat="server" id="groupPlaceholder"> 
      </tr> 
     </table> 
    </LayoutTemplate> 
    <GroupTemplate> 
     <tr runat="server" id="tableRow"> 
      <td runat="server" id="itemPlaceholder" /> 
     </tr> 
    </GroupTemplate> 
    <ItemTemplate> 
     <td id="Td1" runat="server"> 
      <%-- Data-bound content. --%> 
      <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("yyyy") %>' /> 
     </td> 
     <td id="Td2" runat="server"> 
      <%-- Data-bound content. --%> 
      <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("nnnn") %>' /> 
     </td> 
    </ItemTemplate> 
</asp:ListView> 
var by1 = from x in model.x 
      xxxx 
      select new 
      { 
       x.yyyy 
      }; 
ListView1.DataSource = by1; 
ListView1.DataBind(); 

var by2 = from z in model.z 
      zzzz 
      select new 
      { 
       z.nnnn 
      }; 
ListView1.DataSource = by2; 
ListView1.DataBind(); 

這是一個樣本(不需要寫入工作真的是這樣) 我不知道我怎樣才能在一個列表不同勢性能得到2個不同勢querys。 like:如何顯示從linq到Listview的2個查詢結果?

zzzzz:1111 
zzzzz:2222 
nnnn:ffff 
nnnn:gggg 
zzzz:3333 

謝謝。

+0

也許我需要使用2個用戶控件,並把它們放到面板?這種方式我想給我使用不同的屬性和控制 – Liroy 2011-05-17 23:15:06

+0

你想要列出每個列表的屬性是相同的數據類型? – ashelvey 2011-05-17 23:40:58

+0

Linq有一個聯合方法。嘗試使用by1和by2代替相同的數據源和綁定。 – Jeremy 2011-05-18 01:56:18

回答

0

看看這個例子,我鞭打了一下Linq Union方法。這僅適用於兩個列表/ IEnum的類型相同(在我們的案例中爲Model)。

void Main() 
{ 
List<Model> by1 = new List<Model>(); 

by1.Add(new Model {Name = "zzzz",Value = "1111" }); 
by1.Add(new Model {Name = "fdgdfg",Value = "1234"}); 
by1.Add(new Model {Name = "zzzz",Value = "2222"}); 

List<Model> by2 = new List<Model>(); 
by1.Add(new Model {Name = "nnnn",Value = "ffff"}); 
by1.Add(new Model {Name = "nnnn",Value = "gggg"}); 
by1.Add(new Model {Name = "zzzz",Value = "3333"}); 

// Join the results of by1 and by2 as both are List<Model> 

object dataSource = by1.Union(by2); // Results in a IEnumerable<Model> 

// Bind the dataSource to the ListView 

ListView1.DataSource = dataSource; 
ListView1.DataBind(); 
} 

和模型

public class Model { 

public string Name { get;set;} 
public string Value { get;set;} 
} 

編輯

你可能是 '花哨',甚至選擇合併成爲一個匿名類型。例如:

object dataSource = by1.Union(by2).Select(item=>new 
          { 
           yyyy = item.Name, 
           nnnn = item.Value 
          }); 

這將給你一個屬性爲yyyy和nnnn的IEnumerable。

+0

謝謝!我將在稍後測試它,我認爲它應該工作! – Liroy 2011-05-18 03:15:40

+0

希望它!!! – Jeremy 2011-05-18 04:12:24