动态、联动 绑定combobox控件(二级菜单)、combobox显示多级菜单

当在一个combobox1中选择某一项号,另一个combobox2中也跟着变化  做法如下:
load()事件 
DAL.ProjectCollection c = DAL.DB.Select().From(DAL.Project.Schema).ExecuteAsCollection<DAL.ProjectCollection>();
        
            comboBox1.DisplayMember = DAL.Project.Columns.ProjectName;
            comboBox1.ValueMember = "ProjectID";
            comboBox1.DataSource = c;//一定要写在DisplayMember和ValueMember下面才能 再次绑定

            DAL.TaskCollection tasks = DAL.DB.Select().From(DAL.Task.Schema).ExecuteAsCollection<DAL.TaskCollection>();
            DAL.Task _Task = new ProjectManage.DAL.Task();
            _Task.TaskID = 0;
            _Task.TaskName = "";
            tasks.Insert(0, _Task);                  //加入空行   
            comboBox2.DisplayMember = DAL.Task.Columns.TaskName;
            comboBox2.ValueMember = "TaskID";
            comboBox2.DataSource = tasks;
}
  private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)//从新绑定
        {
            string projectid = comboBox1.SelectedValue.ToString();
            if (projectid == null)
                return;
            DAL.TaskCollection tasks = DAL.DB.Select().From(DAL.Task.Schema).Where(DAL.Task.Columns.ProjectID).IsEqualTo(projectid).ExecuteAsCollection<DAL.TaskCollection>();
            DAL.Task _Task = new ProjectManage.DAL.Task();
            _Task.TaskID = 0;
            _Task.TaskName = "";
            tasks.Insert(0, _Task);  //添加空行
           
            comboBox2.DisplayMember = DAL.Task.Columns.TaskName;
            comboBox2.ValueMember = "TaskID";
            comboBox2.DataSource = tasks;  //最后设定数据源
        }
///在comboBox1中 显示多级菜单 并显示区分一级、二级、三级等
            cbbProjectID.DisplayMember = "ProjectName";
            cbbProjectID.ValueMember = "ProjectID";
            BindProject(0, "|");                                                 //绑定

          public void BindProject(int fid, string prefix)                   //递归调用
        {
            DAL.ProjectCollection c = new Select().From(DAL.Project.Schema).Where(DAL.Project.Columns.FatherID).IsEqualTo(fid).ExecuteAsCollection<DAL.ProjectCollection>();
                            //查询数据库,符合条件的
            foreach (DAL.Project p in c)
            {
                if (fid > 0)
                {
                    p.ProjectName = prefix + "-" + p.ProjectName;                   //区分一二级
                }
                cbbProjectID.Items.Add(p);
                BindProject(p.ProjectID, prefix + "|");                                    //区分等级
                }

            }
          
        }

转载于:https://www.cnblogs.com/fengdiechang/archive/2009/08/10/1542760.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值