Associazione di un elenco generico a un ripetitore – ASP.NET

Sto cercando di associare un List a un ripetitore. Ho convertito la lista in una matrice usando il metodo ToArray() e ora ho una matrice di AreaField[]

Ecco la mia gerarchia di classi

 public class AreaFields { public List Fields { set; get; } } public class Fields { public string Name { set; get; } public string Value {set; get; } } 

Nell’aspx, vorrei associarlo a un ripetitore (qualcosa di simile a questo)

 DataBinder.Eval(Container.DataItem, "MyAreaFieldName1") 

MyAreaFieldName1 è il valore della proprietà Name nella class AreaFieldItem.

Potresti voler creare un subRepeater.

   < %# Eval("Name") %>   

Puoi anche lanciare i tuoi campi

 < %# ((ArrayFields)Container.DataItem).Fields[0].Name %> 

Finalmente potresti fare una piccola funzione CSV e scrivere i tuoi campi con una funzione

 < %# GetAsCsv(((ArrayFields)Container.DataItem).Fields) %> public string GetAsCsv(IEnumerable fields) { var builder = new StringBuilder(); foreach(var f in fields) { builder.Append(f); builder.Append(","); } builder.Remove(builder.Length - 1); return builder.ToString(); } 

È sorprendentemente semplice …

Codice dietro:

 // Here's your object that you'll create a list of private class Products { public string ProductName { get; set; } public string ProductDescription { get; set; } public string ProductPrice { get; set; } } // Here you pass in the List of Products private void BindItemsInCart(List ListOfSelectedProducts) { // The the LIST as the DataSource this.rptItemsInCart.DataSource = ListOfSelectedProducts; // Then bind the repeater // The public properties become the columns of your repeater this.rptItemsInCart.DataBind(); } 

Codice ASPX:

   
Product Name Product Description Product Price
< %# Eval("ProductName") %> < %# Eval("ProductDescription")%> < %# Eval("ProductPrice")%>

Spero che questo possa essere d’aiuto!

Codice dietro:

 public class Friends { public string ID { get; set; } public string Name { get; set; } public string Image { get; set; } } protected void Page_Load(object sender, EventArgs e) { List  friendsList = new List(); foreach (var friend in friendz) { friendsList.Add( new Friends { ID = friend.id, Name = friend.name } ); } this.rptFriends.DataSource = friendsList; this.rptFriends.DataBind(); } 

.aspx Pagina

   
ID Name
< %# Eval("ID") %> < %# Eval("Name") %>

Dovresti usare il metodo ToList (). (Non dimenticare lo spazio dei nomi System.Linq)

ex.:

 IList models = Builder.CreateListOfSize(10).Build(); List lstMOdels = models.ToList();