2016-06-11 49 views
0

我認爲我的linq查詢沒有產生任何結果,因爲「Stock」對象沒有被實例化。這裏的任何幫助將受到歡迎!Databind使用Linq的兩個屬性

在我的課:

public class Stock 
{ 
    public List<string> Names { get { return NamesList(); } } 
    public List<int> Prices { get { return PriceList(); } } 

     private List<int> PriceList() 
    { 

     Random random = new Random(); 
     List<int> stockPriceList = new List<int>(); 
     stockPriceList.Add(random.Next(100, 220)); 
     stockPriceList.Add(random.Next(1000, 5365)); 
     return stockPriceList; 
    } 

    private List<string> NamesList() 
    { 
     List<string> stockNames = new List<string>(); 
     stockNames.Add("CBA"); 
     stockNames.Add("ANZ"); 
     return stockNames; 
    } 

} 

在我的綁定方法。 Lync查詢不會產生任何結果。

private void bindPriceList() 
    { 

     List<Stock> stockList = new List<Stock>(); 

     rptPriceList.DataSource = stockList.Select(s => new { Name = s.Names, Price = s.Prices }); 

     rptPriceList.DataBind(); 
    } 

回答

1

試試這個:

後面的代碼:

public partial class RepeaterExample : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      this.bindPriceList(); 
     } 
    } 

    private void bindPriceList() 
    { 
     var stock1 = new Stock { Name = "CBA", Price = "12.99" }; 
     var stock2 = new Stock { Name = "ANZ", Price = "13.99" }; 
     rptPriceList.DataSource = new List<Stock> { stock1, stock2 }; 
     rptPriceList.DataBind(); 
    } 
} 

public class Stock 
{ 
    public string Name { get; set; } 
    public string Price { get; set; } 
} 

.ASPX:

<asp:Repeater ID="rptPriceList" runat="server"> 
    <ItemTemplate> 
     <p><%# Eval("Name") %> - <%# Eval("Price") %></p> 
    </ItemTemplate> 
</asp:Repeater> 
+0

這會工作,但並不完全符合我後。我想保留庫存類中抽象的2個列表,並保持綁定方法整潔。 – JKerny

+0

你如何想像你將兩份不同名單結合這隻能綁定到一個IEnumerable的\ IList.And你仍然可以抽象的綁定邏輯,只是它創建一個新的類和方法單箇中繼的回報清單