Я использую C # и WebForms и сталкиваюсь с проблемой.У меня есть такой класс:
public class Foo
{
public int _touchID;
public string _touchName;
}
Затем у меня есть объект Dao, который возвращает List
из Foo
, и я хочу связать этот список с DataGrid
.
public List<Foo> getFooList()
{ //get my list and whatnot}
Я привязываю его к своему asp:DataGrid
так:
TouchGrid.DataSource = dao.getFooList();
TouchGrid.DataBind();
Страница aspx выглядит так:
<asp:DataGrid ID="TouchGrid" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn HeaderText="ID" DataField="_touchID"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Touch">
<ItemTemplate>
<asp:Label ID="touchName" text='<%#DataBinder.Eval(Container.DataItem, "_touchname") %>' runat="server"/>
<%--<div class="touchDescriptionHidden"><%#DataBinder.Eval(Container.DataItem, "_description")%></div>--%>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Когда я запускаю код, Я получаю исключение во время выполнения, потому что
Поле или свойство с именем '_touchID' не найдено в выбранном источнике данных.
Я пытался использовать DataItem._touchID
но я получил ту же ошибку, используя это.Я также попытался автоматически сгенерировать столбцы, чтобы увидеть, могу ли я получить некоторую подсказку о том, почему это не удается, но я получаю сообщение о том, что
Невозможно автоматически сгенерировать столбцы для выбранного источника данных
Я знаю, что что-то упустил, но не уверен, что именно.Если я отлаживаю строку DataBind
и смотрю на DataSource
, я вижу свои объекты очень хорошо:
TouchGrid.DataSource
[0] - _touchID=1 | _name="stuff"
[1] - _touchID=2 | _name="otherStuff"
Чтоздесь проблема?