1

asp.netリピーターでカスタムメニューをやりたいです。データを取得していますがSiteMap.RootNode.ChildNodes、それは子ノードです。

asp.net:

<asp:Repeater runat="server" ID="rep1" OnItemDataBound="rpt1_ItemDataBound">
    <HeaderTemplate>
        <ul>
    </HeaderTemplate>
    <ItemTemplate>
        <li class="links">
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>'></asp:HyperLink>
        </li>
        <%--<asp:Repeater ID="rep2" runat="server">                                     
        </asp:Repeater>--%>
    </ItemTemplate>
    <FooterTemplate>
        </ul>
    </FooterTemplate>
</asp:Repeater>

C#

protected void Page_Load(object sender, EventArgs e)
{
      rep1.DataSource = SiteMap.RootNode.ChildNodes;
      rep1.DataBind();
}

protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
}

これを行う方法?私を助けてください。

編集 :ここに画像の説明を入力

4

1 に答える 1

2

階層レベルが2つしかない場合は、途中です。ItemDataBoundイベントを使用して、内部リピーターのデータソースを設定します。((Repeater)FindControl('rep2')).DataSource = <proper data>;

複数の/不明な階層レベルがある場合、唯一の方法は、コードビハインドからそれらすべてを作成することです。Panelをコンテナとして使用し、リピーターを動的に作成して、次のように親のリピーターをパネルに追加できます。Panel1.Controls.Add(rep1);

于 2013-01-02T15:09:24.097 に答える