J'ai eu un peu de mal à essayer de lier une liste générique à un répéteur. Le type utilisé dans la liste générique est en fait une structure.Liaison d'une liste générique de type struct à un répéteur
J'ai construit un exemple de base ci-dessous:
struct Fruit
{
public string FruitName;
public string Price; // string for simplicity.
}
protected void Page_Load(object sender, EventArgs e)
{
List<Fruit> FruitList = new List<Fruit>();
// create an apple and orange Fruit struct and add to List<Fruit>.
Fruit apple = new Fruit();
apple.FruitName = "Apple";
apple.Price = "3.99";
FruitList.Add(apple);
Fruit orange = new Fruit();
orange.FruitName = "Orange";
orange.Price = "5.99";
FruitList.Add(orange);
// now bind the List to the repeater:
repFruit.DataSource = FruitList;
repFruit.DataBind();
}
J'ai un struct simple modèle de fruits, nous avons deux propriétés qui sont FruitName et le prix. Je commence par créer une liste générique vide de type 'FruitList'. Je crée ensuite deux fruits en utilisant la structure (pomme et orange). Ces fruits sont ensuite ajoutés à la liste.
Enfin, je lie la liste générique à la propriété DataSource du répéteur ...
Le balisage ressemble à ceci:
<asp:repeater ID="repFruit" runat="server">
<ItemTemplate>
Name: <%# Eval("FruitName") %><br />
Price: <%# Eval("Price") %><br />
<hr />
</ItemTemplate>
-je voir le nom de fruits et prix imprimé sur l'écran, séparé par une règle horizontale.
Au moment où je reçois une erreur relative à la liaison réelle ...
**Exception Details: System.Web.HttpException: DataBinding: '_Default+Fruit' does not contain a property with the name 'FruitName'.**
Je ne suis même pas sûr si cela peut fonctionner? Des idées?
Merci
Note aléatoire, la classe ListView est annule et remplace massivement le répéteur en termes de capacité. –
@Chris Marisic merci pour le conseil, je lis sur le ListView maintenant, l'air vraiment bien: http://weblogs.asp.net/scottgu/archive/2007/08/10/10the-asp-listview-control- partie-1-construction-a-product-listing-page-avec-clean-css-ui.aspx – Dal