У меня была небольшая проблема с попыткой привязать общий список к ретранслятору. Тип, используемый в общем списке, фактически является структурой.Связывание общего списка типа struct с ретранслятором
Я построил простой пример ниже:
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();
}
У меня есть простая-структура для моделирования фруктов, у нас есть два свойства, которые FruitName и цена. Сначала я создаю пустой общий список типа «FruitList».
Затем я создаю два плода, используя структуру (яблоко и апельсин). Затем эти фрукты добавляются в список.
Наконец, я связываю общий список в DataSource свойство повторителя ...
Разметка выглядит следующим образом:
<asp:repeater ID="repFruit" runat="server">
<ItemTemplate>
Name: <%# Eval("FruitName") %><br />
Price: <%# Eval("Price") %><br />
<hr />
</ItemTemplate>
я ожидаю увидеть имя и фруктов цена, напечатанная на экране, разделенная горизонтальным правилом.
На данный момент я получаю ошибку, связанную с фактической привязки ...
**Exception Details: System.Web.HttpException: DataBinding: '_Default+Fruit' does not contain a property with the name 'FruitName'.**
Я даже не уверен, если это может работать? Есть идеи?
Thanks
Случайное замечание, класс ListView массово заменяет ретранслятор с точки зрения возможностей. –
@ Chris Marisic спасибо за отзыв, я читаю о ListView сейчас, выглядит очень хорошо: http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control- part-1-building-a-product-listing-page-with-clean-css-ui.aspx – Dal