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

DROPDOWNLIST三级级联。帮忙解决下啊

代码:
private void DisplayBranchInfo()
    {
        IList<tb_Profession> list = tb_ProfessionManager.GetAll();//获取查询出来的泛型集合        
        ddlProfession.Items.Clear();//清空下拉菜单
        ddlProfession.Items.Add(new ListItem("==请选择==", "0"));//设置第一行        
        foreach (tb_Profession branchInfo in list)
        {
            ListItem li = new ListItem();
            li.Text = branchInfo.Name;
            li.Value = branchInfo.Id.ToString();
            ddlProfession.Items.Add(li);//添加到下拉列表中(下拉列表需要的是ListItem)        
        }
    }


    private void DisplayDepartByBranchId(int id) //此处为第一个ddl选择的id    
    {
        IList<tb_Lesson> list = tb_LessonManager.GetProfessionById(id);
        ddlLesson.Items.Clear();
        ddlLesson.Items.Add(new ListItem("==请选择==", "0"));
        foreach (tb_Lesson departInfo in list)
        {
            ListItem li = new ListItem();
            li.Text = departInfo.Name;
            li.Value = departInfo.OfProfession.ToString();
            ddlLesson.Items.Add(li);
        }
    }
    private void DisplayThere(int Lessionid)
    {
        IList<tb_TaoTi> list = tb_TaoTiManager.GetLessonById(Lessionid);
        ddlQueName.Items.Clear();
        ddlQueName.Items.Add(new ListItem("==请选择==", "0"));
        foreach (tb_TaoTi departInfo in list)
        {
            ListItem li = new ListItem();
            li.Text = departInfo.Name;
            li.Value = departInfo.LessonID.ToString();
            ddlQueName.Items.Add(li);
        }
    }





-----------------------------------------------------------------------------
DROPDOWNLIST 第一个,第二个的SelectedIndexChanged事件
protected void ddlProfession_SelectedIndexChanged(object sender, EventArgs e)
    {
         DisplayDepartByBranchId(Convert.ToInt32(ddlProfession.SelectedValue));//给第一个ddl加入事件
    }
    protected void ddlLesson_SelectedIndexChanged(object sender, EventArgs e)
    {
        //DisplayDepartByBranchId(Convert.ToInt32(ddlLesson.SelectedValue));//给第二个ddl加入事件
    }


---------------------------------------------------------------------------------------------------
页面加载
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DisplayBranchInfo();
        }
    }


AUTOPOSTBACK 我设置1,2为TRUE



问题:
我把第二个下拉框SelectedIndexChanged的事件注释了,2级级联的效果能出来?但是不注释,效果就出不来了。这个是为什么呢?
--------------------编程问答-------------------- --------------------编程问答-------------------- 第二ddl里面不是应该展现第三个ddl吗
你写的还是第二个 --------------------编程问答-------------------- 第二个下拉框SelectedIndexChanged的事件怎么和第一个的事件调用同一个方法? 这什么逻辑? --------------------编程问答-------------------- 逻辑不清晰代码看着有点头晕 --------------------编程问答-------------------- 不好意思,这个改下:
 protected void ddlLesson_SelectedIndexChanged(object sender, EventArgs e)
  {
  DisplayThere(Convert.ToInt32(ddlLesson.SelectedValue));//给第二个ddl加入事件
  }


现在的问题是能进第一个事件,但是要多点几次、
Lesson这个事件还是进不去,
--------------------编程问答-------------------- AutopostBack 设置了没! --------------------编程问答-------------------- AutopostBack  我三个下拉框都设置为TRUE --------------------编程问答-------------------- 简单的说就是SelectedIndexChanged的第二个事件进不去,第三个下拉框没有值 --------------------编程问答-------------------- 检查代码! 头脑要清醒! --------------------编程问答-------------------- AutopostBack =true
protected void ddlLesson_SelectedIndexChanged(object sender, EventArgs e)
{
  DisplayThere(Convert.ToInt32(ddlLesson.SelectedValue));
}
updatepanel无刷新 --------------------编程问答-------------------- 我没用AJAX啊? 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,