后台数据绑定为:
var title = from n in nsdb.News
            where n.ArchiveDeptID == archiveDeptID && n.addDate >= startDate && n.addDate <= endDate && n.Folder.Cid == deptID
            select new
                  {
                     ID = n.id,
                     Title = n.title
                  };//myGridView.DataSource = title;
//myGridView.DataBind();
这里title能正常绑定到GridView,aspx的gridview代码为 <asp:GridView ID="myGridView" runat="server" />
但GridView换为ListView就提示" Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用"的错误提示
如下:                   
TitleListView.DataSource = title.ToList() ;
TitleListView.DataBind();
aspx代码为:
<asp:ListView ID="TitleListView" runat="server"  DataKeyNames='<%# Eval("ID")%>'  ItemPlaceholderID="itemPlaceholder">
                            <LayoutTemplate>
                                <ul>
                                    <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
                                </ul>
                            </LayoutTemplate>
                            <ItemTemplate>
                                <li>
                                    <asp:LinkButton ID="lnkSelect" runat="server" Text='<%# Eval("Title")%>' />
                                </li>
                            </ItemTemplate>
                            <SelectedItemTemplate>
                                <li class="">
                                    <%# Eval("Title")%>
                                </li>
                            </SelectedItemTemplate>
                        </asp:ListView> 
我找了一文章应该能绑定呀http://www.ntdrv.cn/Blog/Article.aspx?ID=1842

解决方案 »

  1.   

    到目前为止,ListView还真没用过。
      

  2.   

    DataKeyNames=' <%# Eval("ID")%>'这个错误。
      

  3.   

    ListView本身并没有DataKeyNames属性,所以如果你写:DataKeyNames='hello world!'只是会对这个控件的Attributes集合中增加一个自定义标签,尽管你理解错了DataKeyNames含义但是你这样写时asp.net编译时不会报错。但是你写了绑定表达式,就不在数据绑定上下文中了(没有可提供的当前数据行),这样asp.net编译才会出错。
      

  4.   

    ListView本身并没有DataKeyNames属性 ?如前面的例子,如果
    <asp:LinkButton ID="lnkSelect" runat="server" Text=' <%# Eval("Title")%>' />我想点击此标题获取文件的详细信息,没有DataKeyNames该如果做?