我有一個名爲「Entries」的表,並且正在使用LINQ to SQL進行數據訪問。我創建了一個獲取所有條目的存儲過程。我已經將存儲的proc映射到數據上下文中的方法,我已將返回類型設置爲「Entry」。'object'在ascx文件中不包含使用repeater的定義錯誤
我在我的數據訪問類中創建了一個方法,它將此方法調用的結果作爲List返回。我的列表綁定到一箇中繼器在用戶控制,並試圖在我的ascx文件訪問屬性「ENTRYID」和我收到以下錯誤:
「對象」不包含「ENTRYID」
的定義我在我的數據訪問類方法:
public static List<Entry> GetAllEntries()
{
using (DataClassesDataContext context = new DataClassesDataContext())
{
return context.fbGetAllEntries().ToList();
}
}
和用戶控制Page_PreRender事件:
//my alias at the top of the file for clairification
using ASPWebControls = System.Web.UI.WebControls;
protected void Page_PreRender(System.Object sender, System.EventArgs e)
{
rptEntries = new ASPWebControls.Repeater();
rptEntries.DataSource = DataAccess.GetAllEntries();
rptEntries.DataBind();
}
而且在我的ascx文件:
<asp:Repeater ID = "rptEntries" runat = "server" >
<ItemTemplate>
<tr>
<td><input type="checkbox" runat="server" value="<%# Container.DataItem.EntryId %>" /></td>
</tr>
</ItemTemplate>
</asp:Repeater>
當我谷歌搜索這個錯誤,我發現它可以發生在使用匿名類型時,但這不是這裏的情況。我確定我的轉發器有一個綁定到它的強類型對象的列表。我試過explicitally鑄造:
rptEntries.DataSource = (List<Entry>)DataAccess.GetAllEntries();
我敢肯定我的條目類型有ENTRYID我能做到這一點:
foreach (Entry en in (List<Entry>)rptEntries.DataSource)
{
//when I step through I can see these are the correct values
int i = en.EntryId;
}
我試着輸入我的名字空間在我的ascx文件:
<%@ Import NameSpace="Namespace.in.my.DataClass.cs" %>
我不確定哪裏的事情橫向,有人可以提出我做錯了什麼?任何幫助將不勝感激,謝謝!
編輯:錯過了一個代碼塊
這似乎這樣做,謝謝! – TheMethod