关于Repeater控件的一个问题

用Repeater生成一个树控件,想把子节点在后台代码中动态绑定,可是代码不能按预期的执行,请教大家帮忙分析一下是什么原因呢?

 

代码说明如下: 

 

aspx页面代码:

<div id="divParty">
    <ul class="tree treeFolder" >
        <asp:Repeater ID="partyRepeater" OnItemDataBound="partyRepeater_ItemDataBound" runat="server" >
        <ItemTemplate>        
        <li><a href="javascript:;" id="partyLink" runat="server"></a></li>
        </ItemTemplate>
        </asp:Repeater>
       </ul>

</div> 

 

 aspx.cs代码:

protected void partyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) {
            PartyEntity party = e.Item.DataItem as PartyEntity;
            if (party == null)
                return;
            
            HtmlAnchor a = e.Item.FindControl("partyLink"as HtmlAnchor;
            if (a != null) {
                a.InnerText = party.Title.Trim();
                a.Attributes.Add("onclick""loadNode("+ party.ID +")");
            }

            List<PartyEntity> children = GetChildren(party.ID);
            if (children == null || children.Count == 0)
                return;

            HtmlGenericControl ul = new HtmlGenericControl("UL");
            e.Item.Controls.Add(ul);

            // 绑定子节点
            Repeater rep = new Repeater();
            rep.ItemTemplate = new PartyTemplate();
            rep.ItemDataBound += new RepeaterItemEventHandler(partyRepeater_ItemDataBound);
            rep.DataSource = children;
            rep.DataBind();
            ul.Controls.Add(rep);

 

 期望的结果:黄色高亮部分作为子节点,放在li标签内;

<UL class="tree treeFolder" >
<LI>
<DIV >
<DIV class=node></DIV>
<DIV class=file></DIV><A id=partyLink onclick=loadNode(1) href="javascript:;" >父节点</A></DIV>
<UL >
<LI><A onclick=loadNode(2>子节点1</A></LI>

<LI><A onclick=loadNode(3>子节点2</A></LI> 

</UL>
</LI>
</UL>

 

 实际运行结果,总是在li标签外:

 <UL class="tree treeFolder" > 

<LI>
<DIV >
<DIV class=node></DIV>
<DIV class=file></DIV><A id=partyLink onclick=loadNode(1) href="javascript:;" >

父节点</A></DIV>
</LI>

 

<UL>

<LI><A onclick=loadNode(2>子节点1</A></LI>

<LI><A onclick=loadNode(3>子节点2</A></LI> 

</UL> 
</UL> 

 

 

 

 

 

 

 

 

 

  

 

 


 

posted @ 2011-12-12 16:51  老泉  阅读(537)  评论(1)    收藏  举报