ListBox控件显示分类如何实现三级联动

来源:互联网 发布:批处理静默安装软件 编辑:程序博客网 时间:2024/06/08 00:22
写asp.net程序的时候,用ListBox控件实现数据库中分类的三级显示,而且要实现选择第一级的时候,后面的两级(多级也可以)实现联动。
ListBox分别为ListBox1、ListBox2、ListBox3
如果只是简单的设置这三个ListBox的SelectedIndexChanged事件的处理程序,那么只能实现相邻的两级之间的联动。为了实现三级联动,需要使用一下方法:
首先配置三个数据源控件:SqlDataSource1、SqlDataSource2、SqlDataSource3。
在Aspx文件的源代码试图,配置好这三个数据源控件的ConnectionString属性。配置第一个ListBox:ListBox1的SqlDataSource:SqlDataSource1的SelectCommand属性,其余两个数据源的SelectCommand属性则不要配置,留作以后由程序配置。
配置ListBox1的SelectedIndexChanged事件:
  1.         protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             Path.Text = ListBox1.SelectedItem.Text;
  4.             SqlDataSource2.SelectCommand = "select * from [category] where fatherid=" + ListBox1.SelectedValue;
  5.             ListBox2.DataSource = SqlDataSource2;
  6.             ListBox2.DataValueField = "id";
  7.             ListBox2.DataTextField = "name";
  8.             ListBox2.DataBind();            
  9.         }
在这个事件中给ListBox2做了数据绑定。
然后再在ListBox2的DataBound()事件中,给ListBox3做数据绑定,这样就实现了三级联动:
  1.         protected void ListBox2_DataBound(object sender, EventArgs e)
  2.         {
  3.             SqlDataSource3.SelectCommand = "select * from [category] where fatherid=" + ListBox2.Items[1].Value;
  4.             ListBox3.DataSource = SqlDataSource3;
  5.             ListBox3.DataValueField = "id";
  6.             ListBox3.DataTextField = "name";
  7.             ListBox3.DataBind();
  8.         }
但是这时,只有单击了ListBox1的选项的时候,ListBox3才会联动,还需要配置当单击ListBox2的时候,ListBox3也要联动,这就需要配置ListBox2的SelectedIndexChanged()事件的处理程序:
  1.         protected void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             Path.Text = ListBox1.SelectedItem.Text + ListBox2.SelectedItem.Text;
  4.             SqlDataSource3.SelectCommand = "select * from [category] where fatherid=" + ListBox2.SelectedValue;
  5.             ListBox3.DataSource = SqlDataSource3;
  6.             ListBox3.DataValueField = "id";
  7.             ListBox3.DataTextField = "name";
  8.             ListBox3.DataBind();
  9.         }
这样就可以实现完美的三级联动了。

里面的SelectCommand字符串的内容以及要绑定的字段需要配合相应的数据库做改变。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕37周胎盘三级怎么办 孕37周胎盘老化怎么办 怀孕22周胎盘1级怎么办 婴儿吃奶粉吐奶怎么办 宝宝吐奶又拉稀怎么办 羊水穿刺21三体怎么办 开始长妊娠纹了怎么办 已经长了妊娠纹怎么办 孕晚期长妊娠纹怎么办 妊娠纹长出来了怎么办 没提前预约四维怎么办 ct检查冠脉钙化怎么办 残角子宫有内膜怎么办 怀孕了长痔疮了怎么办 人流后子宫内膜薄怎么办 多囊子宫内膜薄怎么办 6岁儿童不爱睡觉怎么办 初生儿嗓子哑了怎么办 6岁儿童睡眠不好怎么办 8岁儿童睡眠不好怎么办 1个月婴儿睡眠少怎么办 三岁宝宝心跳快怎么办 宝宝右心房稍大怎么办 胎儿右心房偏大怎么办 胎心监测波动小怎么办 怀孕6个月不想要了怎么办 高敏肌钙蛋白t高怎么办 龟头沟槽里长疙瘩怎么办 肝郁气滞的体质怎么办 手指甲长在肉里怎么办 甲床与指甲脱离怎么办 指甲往肉里面长怎么办 指甲和肉分离是怎么办 大脚趾指甲空了怎么办 脚趾甲长在肉里怎么办 脚趾甲又厚又硬怎么办 小孩子咳嗽有痰怎么办%3f 支气扩张咳血怎么办小 背部第8块脊椎疼怎么办 坐时间长了背疼怎么办 新生儿总哭怎么办吐奶