2016-09-15 4 views
0

C#Bindung Allgemein Liste in Asp.Net

List<Rating> ratingList = new List<Rating>(); 

public class Rating 
{ 
    public string CustomerName; 
} 

RptCustomerRating.DataSource = ratingList; 
RptCustomerRating.DataBind(); 

Im Debugmodus wird die Liste gefüllt. Aber in der itemtemplate Eval funktioniert nicht auf allen ...

Aspx-Datei Version 1

<asp:Repeater ID="RptCustomerRating" runat="server"> 
     <ItemTemplate> 
      <div class="row"> 
        <div class="col-md-12"> 
         <h2><%#Eval("CustomerName") %></h2> 
        </div> 
      </div> 
     </ItemTemplate> 
    </asp:Repeater> 

Mein Fehler:
System.Web.HttpException: Databinding: crating + Bewertung enthält keine Eigenschaft Name CustomerName.

Aspx-Datei Version 2

<asp:Repeater ID="RptCustomerRating" runat="server"> 
     <ItemTemplate> 
      <asp:Repeater ID="inner" runat="server"> 
       <ItemTemplate> 
        <div class="row"> 
         <div class="col-md-12"> 
          <h2><%#Eval("CustomerName") %></h2> 
         </div> 
        </div> 
       </ItemTemplate> 
      </asp:Repeater> 
     </ItemTemplate> 
    </asp:Repeater> 

Das ist, was ich auf Stackoverflow gefunden. Jemand empfiehlt, das Problem mit verschachtelten Repeatern zu lösen. Nun Visual Studio kann keinen Fehler finden, aber in diesem Fall passiert nichts. Der HTML-Teil ist leer.

Antwort

2

Sie müssen get und set Eigentum CustomerName

public class Rating 
{ 
    public string CustomerName {get; set;} 
} 
+0

Dank, dass mein Problem gelöst :) – JulZc

0

Sie sind ein Feld verwenden, nicht Eigentum. Deshalb hast du einen solchen Fehler.

public class Rating 
{ 
    public string CustomerName; // <= this is a field 
} 

public class Rating 
{ 
    public string CustomerName { get; set;} // <= this is a property 
} 

Difference between fields and properties