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