【问题标题】:Using ItemType for strongly typed repeater control?使用 ItemType 进行强类型中继器控制?
【发布时间】:2012-09-10 19:58:54
【问题描述】:

好的,所以我查找了一些关于强类型中继器控件的很酷的东西……唯一的问题是它不起作用。我有一个List<Entry>,我已经绑定了我的中继器。我只想显示数据。通常我使用((Entry)(Container.DataItem)),但从我读过的内容来看,我可以在ItemType 中声明类型。

嗯...这就是我试图做的,但我什么也没得到。我在这里搞砸了什么?

<asp:Repeater ID="UserRptr" ItemType="HROpenEnrollment.Classes.Entry" runat="server">
    <ItemTemplate>
        <ul class="UserList">
            <li class="CompoundField">
                <%# ???? I can't use Item here. %>
            </li>
        </ul>
    </ItemTemplate>
</asp:Repeater>

我猜它没有找到我的入门类...​​我如何将其放入其中?它在同一个命名空间中,在一个单独的文件夹中。

【问题讨论】:

  • 你能提供你正在阅读的内容的链接吗? ItemTypeRepeaterItem 的属性,而不是 Repeatermsdn.microsoft.com/en-us/library/…
  • @dbaseman 最初我正在阅读weblogs.asp.net/scottgu/archive/2011/09/02/…。但是,谷歌搜索后,我被告知 ModelType 已重命名为 ItemType。我应该如何正确使用这种方法?
  • 我不确定,但它似乎需要 VS 2012 / ASP.Net 4.5。这就是你的工作吗?
  • 好吧,事实证明我不是,尽管我认为我是。谢谢你帮我弄清楚
  • 也许你可以在这里抛出正确的答案,一旦你得到它的工作?

标签: asp.net


【解决方案1】:

您需要在下面的代码中绑定数据:

using (MicroGOVEntities entities = DataEntitiesFactory.GetInstance())
{
    var getGovernments = from g in entities.S_Government 
                         orderby g.DateCreated descending 
                         select g;
    rpData.DataSource = getGovernments.ToList();
}
rpData.DataBind();

而 ASP.NET 代码是:

<asp:Repeater ID="rpData" runat="server"
              ItemType="MicroGOV.Entity.S_Government" 
              OnItemCommand="rpData_ItemCommand">
    <ItemTemplate>
        <td><%#:Item.GovernmentID %></td>
    </ItemTemplate>
</asp:Repeater>

【讨论】:

  • 仅供其他 Google 员工参考:您还可以通过将列表公开为受保护的属性并在转发器上使用 DataBind 属性来绑定代码前面的数据。
  • *DataSource,对不起。
猜你喜欢
  • 1970-01-01
  • 2014-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多