0
我想使工作嵌套ListView几天,但我不明白为什么它只显示第一个选定的数据。下面是一些代码: ASPX:嵌套ListView只显示第一个选定的数据
<asp:ListView ID="ListForumCategories" runat="server">
<ItemTemplate>
<div class="accordionButton">
<table><%--class="Categories"--%>
<tr>
<td class="CatName">
<%# Eval("CatName") %>
</td>
<td class="SubjectNumber">
0
</td>
<td class="AllComment">
0
</td>
<td class="CreationDate">
<%# Eval("WhenCreated") %>
</td>
<td class="LastModification">
<%# Eval("WhenCreated") %>
</td>
</tr>
</table>
</div>
<asp:ListView ID="ListSubjectsToCategories" DataSource='<%# Eval("RelatedSubjects") %>' runat="server">
<ItemTemplate>
<div class="accordionContent"><%# Eval("SubjID") %> <%# Eval("SubjectName") %> <%# Eval("WhenCreated") %></div>
</ItemTemplate>
</asp:ListView>
</ItemTemplate>
</asp:ListView>
查询
public static List<ForumCategoriesModel> ListForumCategories()
{
try
{
return BW_Model.ForumCategories.Select(x => new ForumCategoriesModel
{
CatID = x.CatID,
CatName = x.CatName,
WhenCreated = x.WhenCreated
}).ToList();
}
catch
{
throw new Exceptions.SomethingWrongException();
}
}
public static List<ForumSubjectsModel> ListForumSubjectByCategoryID(int catid)
{
try
{
return BW_Model.ForumSubjects.Select(x => new ForumSubjectsModel
{
SubjID = x.SubjID,
WhoCreated = x.WhoCreated,
WhichCategory = x.WhichCategory,
SubjectName = x.SubjectName,
SubjectText = x.SubjectText,
WhenCreated = x.WhenCreated
}).Where(x => x.WhichCategory == catid).ToList();
}
catch
{
throw new Exceptions.SomethingWrongException();
}
}
类
public class ForumCategoriesModel
{
public Int32 CatID { get; set; }
public String CatName { get; set; }
public DateTime WhenCreated { get; set; }
public List<ForumSubjectsModel> RelatedSubjects { get { return bw_forum_sqlchannel.ListForumSubjectByCategoryID(CatID); } }
}
public class ForumSubjectsModel
{
public Int32 SubjID { get; set; }
public Int32 WhoCreated { get; set; }
public Int32 WhichCategory { get; set; }
public String SubjectName { get; set; }
public String SubjectText { get; set; }
public DateTime WhenCreated { get; set; }
}
我应该得到一个列表<>回来,有很多元素,但它只显示每个类别的第一个。
现在试图解决这个问题2天...如果你能帮我解决问题,那将会非常有用。提前致谢。
啊,忘了后面的代码:):
categories = bw_forum_sqlchannel.ListForumCategories();
ListForumCategories.DataSource = categories;
ListForumCategories.DataBind();
解决方案:
<asp:ListView ID="ListSubjectsToCategories" DataSource='<%# Eval("RelatedSubjects") %>' runat="server">
<ItemTemplate>
<div class="accordionContent"><%# Eval("SubjID") %> <%# Eval("SubjectName") %> <%# Eval("WhenCreated") %></div>
</ItemTemplate>
</asp:ListView>
变成了:
<div class="accordionContent">
<asp:ListView ID="ListSubjectsToCategories" DataSource='<%# Eval("RelatedSubjects") %>' runat="server">
<ItemTemplate>
<%# Eval("SubjID") %> <%# Eval("SubjectName") %> <%# Eval("WhenCreated") %>
</ItemTemplate>
</asp:ListView>
</div>
'RelatedSubjects'属性是否包含预期的数据,问题是它的所有内容都没有显示在内部'ListView'中?还是这样,'RelatedSubjects'甚至不会获取它应该的所有行? – user1429080
@ user1429080我不知道,我无法测试它。 列表视图的输出是这样的: [代码]第一类别 第一个项目属于第一类别 第二类别 第一个项目属于第二类[/代码] 但应该有属于这些类别的更多的项目,但它只显示第一个。我认为可能相关的主题有所有的数据,但我不知道它 – davegen
@ user1429080哇,我发现它在页面源...怎么会这样CSS? :D让我试着修复它。 – davegen