asp.net如何实现递归方法取出菜单并显示在DropDownList中

小编给大家分享一下asp.net如何实现递归方法取出菜单并显示在DropDownList中,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体如下:

树形栏目展示以DropDownList的形式显示出来。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
      DataTable table = bllSite.GetChannelNames(CurrentUser.ParkID);
      BindChannelType(table, 0, 0);
    }
}
//递归方法取
private void BindChannelType(DataTable dt, int categoryid, int layer)
{
    DataView dv = new DataView(dt);
    dv.RowFilter = " Pid= " + categoryid.ToString(); //过滤  
    if (categoryid != 0)
    {
      layer++; //默认为第一层
    }
    foreach (DataRowView drv in dv)
    {
      string span = "";
      if (categoryid != 0)
      {
        for (int i = 0; i < layer; i++)//父级菜单不缩进
        {
          span += " ";
        }
        span += "└";
      }
      ListItem li = new ListItem();
      li.Text = span + drv["ChannelName"].ToString();
      li.Value = drv["Id"].ToString();
      this.ddlChannel.Items.Add(li);
      BindChannelType(dt, Convert.ToInt32(drv["Id"]), layer);
    }
}

看完了这篇文章,相信你对“asp.net如何实现递归方法取出菜单并显示在DropDownList中”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!