ListBox控件显示分类如何实现三级联动
展开全部
ListBox分别为ListBox1、ListBox2、ListBox3
如果只是简单的设置这三个ListBox的SelectedIndexChanged事件的处理程序,那么只能实现相邻的两级之间的联动。为了实现三级联动,需要使用一下方法:
首先配置三个数据源控件:SqlDataSource1、SqlDataSource2、SqlDataSource3。
在Aspx文件的源代码试图,配置好这三个数据源控件的ConnectionString属性。配置第一个ListBox:ListBox1的SqlDataSource:SqlDataSource1的SelectCommand属性,其余两个数据源的SelectCommand属性则不要配置,留作以后由程序配置。
配置ListBox1的SelectedIndexChanged事件:protectedvoidListBox1_SelectedIndexChanged(objectsender,EventArgse){Path.Text=ListBox1.SelectedItem.Text;
SqlDataSource2.SelectCommand=
"select*from[category]wherefatherid="
+ListBox1.SelectedValue;
ListBox2.DataSource=SqlDataSource2;
ListBox2.DataValueField="id";ListBox2.DataTextField="name";ListBox2.DataBind();}在这个事件中给ListBox2做了数据绑定。
然后再在ListBox2的DataBound()事件中,给ListBox3做数据绑定,这样就实现了三级联动:protectedvoidListBox2_DataBound(objectsender,EventArgse){SqlDataSource3.SelectCommand=
"select*from[category]wherefatherid="
+ListBox2.Items[1].Value;
ListBox3.DataSource=SqlDataSource3;
ListBox3.DataValueField="id";ListBox3.DataTextField="name";ListBox3.DataBind();}但是这时,只有单击了ListBox1的选项的时候,ListBox3才会联动,还需要配置当单击ListBox2的时候,ListBox3也要联动,这就需要配置ListBox2的SelectedIndexChanged()事件的处理程序:protectedvoidListBox2_SelectedIndexChanged(objectsender,EventArgse){Path.Text=ListBox1.SelectedItem.Text+ListBox2.SelectedItem.Text;
SqlDataSource3.SelectCommand=
"select*from[category]wherefatherid="
+ListBox2.SelectedValue;
ListBox3.DataSource=SqlDataSource3;
ListBox3.DataValueField="id";ListBox3.DataTextField="name";ListBox3.DataBind();}这样就可以实现完美的三级联动了。
里面的SelectCommand字符串的内容以及要绑定的字段需要配合相应的数据库做改变。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询