首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView中的内联代码在ASP.NET Webforms中?

ListView中的内联代码在ASP.NET Webforms中?
EN

Stack Overflow用户
提问于 2013-10-22 07:36:31
回答 1查看 1.1K关注 0票数 1

我试图使用带有内联代码的ASP.NET WebFroms ListView (对于全球化,Frame.Article来自resx文件):

代码语言:javascript
复制
      <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>

代码背后:

代码语言:javascript
复制
 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’(您缺少使用指令还是程序集引用?)

有办法让这件事成功吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 17:31:22

只是在经历了同样的问题后才发现的。在这里张贴答案,以防将来有人这样做。

其原因是LayoutTemplate中的数据绑定表达式(如LayoutTemplate)。ASP.NET不支持这些模板中的数据绑定表达式。

以上特定问题的最简单解决方案是将这些表达式移出ListView模板,即:

代码语言:javascript
复制
  <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>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19511799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档