gpt4 book ai didi

c# - 具有复杂 ItemType 失败的 ASP.NET 强类型数据控件(中继器)

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:23 25 4
gpt4 key购买 nike

我有一个由三个嵌套的中继器组成的结构来呈现一个选项卡,然后在这些选项卡下有一些按标题分组的项目。我一直在标准 IEnumerable 上成功使用 .NET 4.5 中的强类型数据控件类型,但这是我第一次使用 Dictionary<T1,T2> .尽管如此,我还是看到了另一个 Stackoverflow question使用Dictionary作为 DataSource通过声明 ItemType 成功作为KeyValuePair<T1, T2> .

标记:

<asp:Repeater ID="rptTabs" runat="server"
ItemType="System.Collections.Generic.KeyValuePair<System.String, System.Collections.Generic.Dictionary<System.String, System.Collections.Generic.List<Sitecore.Data.Items.Item>>>">
<ItemTemplate>
<%# Item.Key %>
<%-- ... more repeaters under but they are commented out for now as it's the outer on that is failing --%>
</ItemTemplate>
</asp:Repeater>

代码隐藏:

var myDatasource = new Dictionary<string, Dictionary<string, List<Item>>>();
// add some items
rptTabs.DataSource = myDatasource;
rptTabs.DataBind();

这是我得到的异常/堆栈跟踪:Yellow Screen

似乎无法构建页面,因为它无法通过 string 解析 ItemType姓名。问题是,我在 <%# Item.Key #%> 上获得智能感知所以智能感知引擎可以通过字符串名称解析类型但运行时不能?

注意:我怀疑是Sitecore.Data.Items.Item类型失败,因为我之前在 IEnumerable 中使用过它,这意味着 ItemType 是 Sitecore.Data.Items.Item .

如有任何帮助,我们将不胜感激!

最佳答案

据我所知,ItemType 属性不喜欢 <尖括号 > .我读过的答案表明,用各自的方括号替换所有尖括号似乎可行。

替换以下内容:

  • <[
  • >]

所以你得到:

ItemType="System.Collections.Generic.KeyValuePair[System.String, System.Collections.Generic.Dictionary[System.String, System.Collections.Generic.List[Sitecore.Data.Items.Item]]]

我遇到了类似的错误。但是,就我而言,我发现我正在尝试访问 <%# Item.Property %>来自 HeaderTemplate .

关于c# - 具有复杂 ItemType 失败的 ASP.NET 强类型数据控件(中继器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16161663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com