zoukankan      html  css  js  c++  java
  • 关于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> 

      


  • 相关阅读:
    2011年03月28日
    如何响应UIScrollView的touchesBegan和touchesEnd消息
    使用Git在Mac和Windows系统之间进行同步数据
    ActionScript 3.0 编程 中文版PDF下载地址
    WIN7 英文 语言包(KB972813)/多国语言包下载(转)
    如何根据内容和字体调整UILabel的大小
    xcode 快捷键(转)
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案
    iOS 开发教程资源列表(转载)
    取消UITableViewCell高亮颜色
  • 原文地址:https://www.cnblogs.com/seesky/p/2285041.html
Copyright © 2011-2022 走看看