我很接近,但到目前爲止。 我有兩張表,一張用於發佈詳情,另一張用於類別鄰接列表。使用嵌套中繼器顯示部分分層數據
我想顯示完整的數據集嵌套的中繼器(除非有一個更好的辦法) 和我建立我的數據集,如下所示:
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