我正在使用C#和WebForms並遇到問題。我有一類這樣的:對象綁定列表Datagrid .Net WebForms
public class Foo
{
public int _touchID;
public string _touchName;
}
然後,我有一個DAO對象返回的Foo
一個List
,我想綁定該列表到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"
這裏有什麼問題?
不錯。我偶然忽略了這一點。謝謝。我會盡我所能接受。 – Rondel 2012-03-20 16:17:05