请帮助找出错误,或提出另一种方法来执行以下操作:
我正在尝试将AspNetUsers
列表显示在ListView
中,然后使用嵌套AspNetRoles
显示其ListView
列表:
<asp:ListView runat="server" ItemType= "CEODAL.AspNetUser" SelectMethod="GetAspNetUsers" >
<LayoutTemplate>
<h4>Registered Users</h4>
<table class="table">
<tbody>
<tr runat="server" id="itemPlaceholder"></tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#: Item.UserName %></td>
<td>
<asp:ListView ID="Repeater1" runat="server" ItemType="CEODAL.AspNetRole" SelectMethod="<%#: Item.AspNetRoles.ToList() %>">
<LayoutTemplate>
<h4>Registered Users</h4>
<table class="table">
<tbody>
<tr runat="server" id="itemPlaceholder2"></tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<%#: Item.Name %>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
父SelectMethod
的{{1}}只会返回ListView
的列表:
AspNetUsers
没有孩子return _db.AspNetUsers.ToList();
,一切正常,我将获得用户名列表。
一旦我放了第二个ListView
,我将收到以下错误:
找不到名为'System.Collections.ObjectModel.ObservableCollection`1 [CEODAL.AspNetRole]'的公共方法,或者在'ASP.pages_manageusers_aspx'类型上有多个具有相同名称的方法。
答案 0 :(得分:0)
尝试替换属性
SelectMethod="<%#: Item.AspNetRoles.ToList() %>">
使用在内部ListView中
DataSource="<%# Item.AspNetRoles.ToList() %>">
您收到错误,因为SelectMethod
属性具有字符串值(要调用的代码隐藏方法的名称),并且您正在向其传递角色对象的ObservableCollection。很明显,你的代码隐藏类没有方法,其名称是将集合转换为字符串的结果,因此你的错误