Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';对象';不包含在ascx文件中使用转发器的定义错误_C#_Asp.net_Linq To Sql_User Controls - Fatal编程技术网

C# ';对象';不包含在ascx文件中使用转发器的定义错误

C# ';对象';不包含在ascx文件中使用转发器的定义错误,c#,asp.net,linq-to-sql,user-controls,C#,Asp.net,Linq To Sql,User Controls,我有一个名为“Entries”的表,正在使用LINQtoSQL进行数据访问。我创建了一个存储过程来获取所有条目。我已经将存储的proc映射到数据上下文中的一个方法,我已经将返回类型设置为“Entry” 我在我的数据访问类中创建了一个方法,该方法以列表的形式返回此方法调用的结果。我正在将列表绑定到用户控件中的中继器,并试图访问ascx文件中的属性“EntryId”,但出现以下错误: “对象”不包含“EntryId”的定义 我的DataAccess类中的我的方法: public static Lis

我有一个名为“Entries”的表,正在使用LINQtoSQL进行数据访问。我创建了一个存储过程来获取所有条目。我已经将存储的proc映射到数据上下文中的一个方法,我已经将返回类型设置为“Entry”

我在我的数据访问类中创建了一个方法,该方法以列表的形式返回此方法调用的结果。我正在将列表绑定到用户控件中的中继器,并试图访问ascx文件中的属性“EntryId”,但出现以下错误:

“对象”不包含“EntryId”的定义

我的DataAccess类中的我的方法:

public static List<Entry> GetAllEntries()
{
    using (DataClassesDataContext context = new DataClassesDataContext())
    {
        return context.fbGetAllEntries().ToList();
    }
}
在我的ascx文件中:

<asp:Repeater ID = "rptEntries" runat = "server" >
    <ItemTemplate>
        <tr>
            <td><input type="checkbox" runat="server"  value="<%# Container.DataItem.EntryId %>"  /></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>
<%@ Import NameSpace="Namespace.in.my.DataClass.cs" %> 

当我在谷歌上搜索这个错误时,我发现它可能发生在使用匿名类型时,但这里的情况并非如此。我确信我的中继器绑定了一个强类型对象列表。我已经尝试过明确的铸造:

rptEntries.DataSource = (List<Entry>)DataAccess.GetAllEntries();
rptcentries.DataSource=(List)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;
}
foreach(在(列表)rptcentries.DataSource中输入en)
{
//当我一步一步走过去时,我可以看到这些是正确的值
int i=en.EntryId;
}
我已尝试在我的ascx文件中导入我的命名空间:

<asp:Repeater ID = "rptEntries" runat = "server" >
    <ItemTemplate>
        <tr>
            <td><input type="checkbox" runat="server"  value="<%# Container.DataItem.EntryId %>"  /></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>
<%@ Import NameSpace="Namespace.in.my.DataClass.cs" %> 

我不确定事情的发展方向,有人能告诉我我做错了什么吗?任何帮助都将不胜感激,谢谢


编辑:缺少代码块

请在数据绑定语句中尝试以下复选框:

 value="<%# Eval("EntryId") %>"
value=“”

在数据绑定语句中尝试以下复选框:

 value="<%# Eval("EntryId") %>"
value=“”

即使项目是强类型的,repeater控件也会在
ItemTemplate
中将其作为对象类型公开。您需要显式取消装箱:

<%# ((Entry)Container.DataItem).EntryId %>


请注意,有一个允许您指定
ItemType
属性并消除取消装箱的需要。

即使项目是强类型的,repeater控件也会在
ItemTemplate
中将其作为对象类型公开。您需要显式取消装箱:

<%# ((Entry)Container.DataItem).EntryId %>

请注意,具有允许您指定
ItemType
属性并消除取消装箱需要的