我想使用转发器从数据库制作动态水平动态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();
}
}
答案 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
}