【问题标题】:Inline Code in ListView in ASP.NET Webforms?ASP.NET Webforms 中 ListView 中的内联代码?
【发布时间】:2013-10-22 07:36:31
【问题描述】:

我正在尝试使用带有内联代码的 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”的定义,也没有扩展方法 'DataItem' 接受类型的第一个参数 可以找到“System.Web.UI.WebControls.ListView”(您是否缺少 使用指令还是程序集引用?)

有没有办法让这个工作?

【问题讨论】:

  • 什么是框架?是上课吗?
  • 你在后面的代码中做了什么吗?
  • Frame 是 resx 文件构建的一个类。因此 Frame.Article 返回一个字符串,其中包含单词“article”的翻译。
  • @Izikon 是的,我创建了一个将其绑定到列表的示例对象。
  • 2 件事:1-如果您删除 LayoutTemplate 上的 Frame 类属性,它是否有效。 2-如果不是1,你能提供代码隐藏代码吗?

标签: c# asp.net listview webforms


【解决方案1】:

在遇到同样的问题后遇到了这个问题。在这里发布答案,以防将来有人这样做。

原因是LayoutTemplate 中的数据绑定表达式(例如&lt;%# Frame.Article %&gt;)。 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多