当前位置:编程学习 > C#/ASP.NET >>

嵌套repeater的隐藏与显示

 <repeater1>
<table>
  <tr>
    <td>
        绑定的数据,比如标题什么的
    </td>
  <tr>
  <tr>
      <repeater2>
        <table>
           <tr>
             <td>
               数据绑定,每个标题下显示的内容
             <td>  
           </tr>
        <table>
      </repeater2>
  <tr>
<table>
</repeater1>
隐藏所有内容
效果就是点击标题时 显示相应标题下面的内容


求各位大侠帮帮忙,在下找了好多,都达不到想要的效果 --------------------编程问答--------------------

 <script src="jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {

            $(".aa").toggle(function() {
                $(this).next().find('div').animate({
                    height: 'hide',
                    opacity: 'hide'
                }, 'slow');
            }, function() {
                $(this).next().find('div').animate({
                    height: 'show',
                    opacity: 'show'
                }, 'slow');
            });
            $(".aa").click(function(event) { }).trigger("click");

        });
        
    </script>


<body>
    <form id="form1" runat="server">
    
    <div class="acb">
       
        <asp:Repeater ID="ParentRp" runat="server" 
            onitemdatabound="ParentRp_ItemDataBound" >
            <HeaderTemplate>
                <table class="wishleftmenu" cellpadding="0" cellspacing="0">
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="aa" >
                    <td class="title" >
                        <%# Eval("name")%>      
                    </td>
                </tr>
                <tr>
                    <td>
                        <div >
                            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("id") %>' />
                            <asp:Repeater ID="ChildRp" runat="server">
                                <HeaderTemplate>
                                    <table width="100%">
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr >
                                        <td class="menutd">
                                            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#"><%# Eval("name")%></asp:HyperLink>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                </FooterTemplate>
                            </asp:Repeater>
                        </div>
                    </td>
                </tr>   
            </ItemTemplate>
            <FooterTemplate >
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
   
    </form>
</body>




 /// <summary>
    /// 系统加载
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Bind();
        }
    }

    /// <summary>
    /// 绑定数据源
    /// </summary>
    void Bind()
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnection"].ToString());
        SqlCommand cmd = new SqlCommand("select * from testMenu where parentID=-1", con);
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        con.Open();
        DataSet ds = new DataSet();
        da.Fill(ds);
        con.Close();
        ParentRp.DataSource = ds;
        ParentRp.DataBind();
       

    }

    /// <summary>
    /// 绑定子项
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void ParentRp_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            HiddenField hd = e.Item.FindControl("HiddenField1") as HiddenField;
            int num = Convert.ToInt32(hd.Value.ToString());
            SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnection"].ToString());
            SqlCommand cm = new SqlCommand("select * from testMenu where parentID=@id", sc);
            cm.CommandType = CommandType.Text;
            cm.Parameters.Add("@id", SqlDbType.Int).Value = num;
            sc.Open();
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cm;
            DataSet ds = new DataSet();

            da.Fill(ds);
            sc.Close();
            Repeater rpt = e.Item.FindControl("ChildRp") as Repeater;
            rpt.DataSource = ds;
            rpt.DataBind();
           


        }
    }

我这个就是Repeater嵌套的菜单,点击父标题,子标题显示,再点击收回,效果用JQuery实现 --------------------编程问答-------------------- 数据库3个字段
ID NAME PARENTID
父级标题的PARENTID为-1,子菜单的PARENTID为父菜单的ID --------------------编程问答-------------------- zx75991:
        谢谢你的JQ代码,就是我想要的效果,很好很强大,谢了 --------------------编程问答-------------------- --------------------编程问答-------------------- 这么详细的回答理应迅速结贴! --------------------编程问答-------------------- 挖坟啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,