我很接近,但到目前为止。 我有两张表,一张用于发布详情,另一张用于类别邻接列表。使用嵌套中继器显示部分分层数据
我想显示完整的数据集嵌套的中继器(除非有一个更好的办法) 和我建立我的数据集,如下所示:
string strSql = "SELECT category_id, parent_id, cat_name_en " +
"FROM categories;" +
"SELECT pub_id, title_en, category_id " +
"FROM publications;";
SqlConnection conn = new SqlConnection(connString.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
DataSet _ds = new DataSet();
da.Fill(_ds);
_ds.DataSetName = "categories";
_ds.Tables[0].TableName = "category";
_ds.Tables[1].TableName = "publications";
_ds.Relations.Add("ParentChild",
_ds.Tables["category"].Columns["category_id"],
_ds.Tables["category"].Columns["parent_id"], false);
_ds.Relations[0].Nested = true;
_ds.Relations.Add("CategoryMembers",
_ds.Tables["category"].Columns["category_id"],
_ds.Tables["publications"].Columns["category_id"], false);
_ds.Relations[1].Nested = true;
categoryRepeater.DataSource = _ds.Tables["category"];
categoryRepeater.DataBind();
我显示这样的数据:
<asp:Repeater runat="server" ID="categoryRepeater" EnableViewState="false">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "category_id") %>
<%# DataBinder.Eval(Container.DataItem, "cat_name_en") %><br />
<asp:Repeater runat="server" EnableViewState="false"
DataSource='<%# GetChildRelation(Container.DataItem, "CategoryMembers") %>'>
<ItemTemplate>
<p><%# DataBinder.Eval(Container.DataItem, "pub_id") %>
<%# DataBinder.Eval(Container.DataItem, "title_en") %></p>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater runat="server" EnableViewState="false"
DataSource='<%# GetChildRelation(Container.DataItem, "ParentChild") %>'>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "category_id") %>
<%# DataBinder.Eval(Container.DataItem, "cat_name_en") %><br />
<asp:Repeater runat="server" EnableViewState="false"
DataSource='<%# GetChildRelation(Container.DataItem, "CategoryMembers") %>'>
<ItemTemplate>
<p><%# DataBinder.Eval(Container.DataItem, "pub_id") %>
<%# DataBinder.Eval(Container.DataItem, "title_en") %></p>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
我嵌套这样的中继器,因为有些类别没有子类别,但仍然有出版物。
因此,我已经建立了关系以获取任何儿童类别,然后获取属于该类别的任何出版物。 我得到他们的孩子和属于该类别的任何出版物的类别列表。
问题是我无法弄清楚如何防止一些儿童类别被视为父母。有些类别没有父母,但仍有出版物。这些类别将正确显示在他们的父母下,然后再次作为他们自己的父类别
如何配置表或关系,以便孩子类别不像父母那样对待?
这里有嵌套直放站监控好看详细的文章,以显示分层数据 的http://咕。 gl/I37Nuj – 2015-08-19 05:13:57