現在、このhttp://blogs.sitepoint.com/hierarchical-data-database-2/メソッドを使用してデータを保存しています。
現在のデータベースの行は次のようになります。
名前 | ノード左 | ノード右 | ノードレベル
ホーム | 1 | 6 | 1
コンテンツA | 2 | 5 | 2
コンテンツB | 3 | 4 | 2
について | 7 | 8 | 1
現在、ASP.NET Repeater を使用して、リストと jsTree を使用してデータを出力しています。
<asp:Repeater ID="rptContentSectionGetAll" runat="server">
<HeaderTemplate>
<div id="contentSectionTree">
<ul>
<li id="contentSectionTreeRoot" rel="root"><a href="#">Root</a>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li id='<%# Eval("ID") %>'>
<a href="#"><%# Eval("name") %></a>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</li>
</ul>
</div>
</FooterTemplate>
</asp:Repeater>
コード ビハインドのItemTemplate
all<li>
およびネストされた にあるものを置き換える必要があります。<ul>
これは私の現在のコードビハインドです:
private DataTable RepeaterDataSource()
{
ContentSectionBAL cBAL = new ContentSectionBAL();
DataTable dTable = new DataTable();
try
{
dTable = cBAL.Load();
int counter = 1;
var htmlList = "";
for (int i = 0; i < dTable.Rows.Count; i++)
{
htmlList = "<li rel='folder' id='" + dTable.Rows[i]["ID"] + "'>";
htmlList += "<a href='#'>" + dTable.Rows[i]["name"] + "</a>";
if (Convert.ToInt32(dTable.Rows[i]["nodeLevel"]) > counter)
{
htmlList = "<ul>";
for (int j = 0; j < dTable.Rows.Count; j++)
{
if (Convert.ToInt32(dTable.Rows[i]["nodeLevel"]) > counter + 1)
{
htmlList += "<li rel='file' id='" + dTable.Rows[j]["ID"] + "'>";
htmlList += "<a href='#'>" + dTable.Rows[j]["name"] + "</a>";
htmlList += "</li>";
}
}
htmlList += "</ul>";
}
htmlList += "</li>";
counter = counter + 1;
}
}
catch (Exception ee)
{
Session["message"] = ee.Message.ToString();
Session["messageType"] = "error";
}
return dTable;
}
この関数の直後に、次のようにしてバインドします。
private void BindRepeater()
{
rptContentSectionGetAll.DataSource = RepeaterDataSource();
rptContentSectionGetAll.DataBind();
}
子が出力されないすべての通常のノード:<li>name</li>
子が含まれるすべてのノードは、何らかのループですべての子を出力する必要があります。
<li><ul><li></li></ul><li>
私が持っている質問: 1. 適切な出力のためにこのタイプのデータをループする適切な方法は何ですか? 2. リピーターで正常に出力するにはどうすればよいですか? [答え]
私は自分が持っているものがうまくいかないことを知っていますが、私の脳はそれについて考え始めました. どんな助けでも大歓迎です。
他に何か必要な場合はお知らせくださいが、これで十分です。
さあ、私が欲しいものを正しい順序でつかむために、条件文や数学の助けが必要です。