3级中继器

时间:2012-04-20 14:57:16

标签: c# asp.net

我想使用转发器从数据库制作动态水平动态3级菜单我可以制作第一级然后卡住我不知道该怎么做以及最好的quall来获得子菜单和子库。 。来自DB可以任何人帮助我,我把它用于第一级...

     try
         {

             con.Open();
             reader = cmd1.ExecuteReader();

             List<menus> types = new List<menus>();

             while (reader.Read())
             {
                 types.Add(new menus() { ID = (int)reader["MenuID"], Name = reader["MenuName"].ToString(), page = reader["Page"].ToString(), Parent = (int)reader["Parent"],Order = (int)reader["Order"] });

             }
            rptlevel1.DataSource = types;
            rptlevel1.DataBind();
             con.Close();
         }
         catch (Exception)
         {
             if (reader != null)
             {
                 reader.Close();
             }
             if (con.State == System.Data.ConnectionState.Open)
             {
                 con.Close();
             }
             }

2 个答案:

答案 0 :(得分:0)

您需要做的事情如下:

repeater1_ItemDataBound
{
    //Get datasource for the current data item

    //Find child repeater control within this

    //Bind to the datasource
}

对第二层转发器重复此操作。


至于你的评论 - 在这个itemdatabound中,找到你的第二个转发器并设置它的itemdatabound事件,例如。

rptOne.ItemDatabound += BindThirdRepeater;

答案 1 :(得分:0)

到目前为止你所做的一切都还可以。嵌套三个中继器并分别读取菜单级别。

只读你喜欢的第一个菜单级别,然后在rptLevel1的OnItemDataBound方法中,再次读取第二级菜单项。三级再一次,你就在那里。

1st level read

protected void rptLevel1_ItemDataBound(object sender, RepeaterItemEventArgs e) {
    2nd level read
}

protected void rptLevel3_ItemDataBound(object sender, RepeaterItemEventArgs e) {
    3rd level read
}