我试图使用带有内联代码的ASP.NET WebFroms ListView (对于全球化,Frame.Article来自resx文件):
<asp:ListView runat="server" ID="demo" ItemType="Quarters<int>">
<LayoutTemplate>
<strong><%# Frame.Article %></strong>
<strong><%# Frame.Customer %></strong>
<asp:PlaceHolder runat="server" ID="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<p><%# Item.Q1 %></p>
</ItemTemplate>
</asp:ListView>代码背后:
Quarters<int> quarter = new Quarters<int>();
quarter.Q1 = 10;
quarter.Q2 = 20;
quarter.Q3 = 30;
quarter.Q4 = 40;
demo.DataSource = new List<Quarters<int>>(){quarter};
demo.DataBind();但我总是会犯这样的错误:
编译器错误消息: CS1061:'System.Web.UI.WebControls.ListView‘不包含'DataItem’的定义,也找不到接受'System.Web.UI.WebControls.ListView‘类型的第一个参数的扩展方法'DataItem’(您缺少使用指令还是程序集引用?)
有办法让这件事成功吗?
发布于 2015-10-13 17:31:22
只是在经历了同样的问题后才发现的。在这里张贴答案,以防将来有人这样做。
其原因是LayoutTemplate中的数据绑定表达式(如LayoutTemplate)。ASP.NET不支持这些模板中的数据绑定表达式。
以上特定问题的最简单解决方案是将这些表达式移出ListView模板,即:
<strong><%# Frame.Article %></strong>
<strong><%# Frame.Customer %></strong>
<asp:ListView runat="server" ID="demo" ItemType="Quarters<int>">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<p><%# Item.Q1 %></p>
</ItemTemplate>
</asp:ListView>https://stackoverflow.com/questions/19511799
复制相似问题