Asp.net三级联动DropDownList C# 下
2020-03-05 12:47
941 查看
上篇的三级联动我们所用的方法是分别绑定省市县,然后当数据发生改变的时候再去调用相关的方法。
这样呢我们在每次绑定时都要进行一次数据读取,这个省市县的txt还好说,一旦读取的数据量大,显然这样做并不好。
所以我想的是在一开始先新设一个List列表,在Page_load把数据存进列表里,并且把省的数据读出来,接着就可以写ddl_City.SelectedIndexChanged和ddl_Area.SelectedIndexChanged了。
方法跟上篇的一样,根据编号判断。
using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class _Default : System.Web.UI.Page { public List<string> Add = new List<string>(); protected void Page_Load(object sender, EventArgs e) { string path = Server.MapPath("sheng.txt"); StreamReader sr = new StreamReader(path); string address; while ((address = sr.ReadLine()) != null) { Add.Add(address); } if(!IsPostBack) { foreach (string temp in Add) { string[] list = temp.Split('\t'); int s = Convert.ToInt32(list[0]); if (list[0].Substring(2, 4) == "0000" && s % 1000 == 0) { ddl_Province.Items.Add(list[1]); this.ddl_Province_SelectedIndexChanged(new object(), new EventArgs()); this.ddl_City_SelectedIndexChanged(new object(), new EventArgs()); }} } } protected void ddl_Province_SelectedIndexChanged(object sender, EventArgs e) { ddl_City.Items.Clear(); ddl_Area.Items.Clear(); string fisrt2 = ddl_Province.SelectedValue; foreach (string temp in Add) { string[] list = temp.Split('\t'); int s = Convert.ToInt32(list[0]); if (list[1] == fisrt2 && s % 100 == 0) { ddl_City.Items.Add(list[2]); } } } protected void ddl_City_SelectedIndexChanged(object sender, EventArgs e) { ddl_Area.Items.Clear(); string fisrt2 = ddl_Province.SelectedValue; string first4 = ddl_City.SelectedValue; foreach (string temp in Add) { string[] list = temp.Split('\t'); int s = Convert.ToInt32(list[0]); if (list[1] == fisrt2) { if (list[2] == first4) { ddl_Area.Items.Add(list[3]); } } } } }
说明一下
if (list[0].Substring(2, 4) == "0000" && s % 1000 == 0) { ddl_Province.Items.Add(list[1]); this.ddl_Province_SelectedIndexChanged(new object(), new EventArgs()); this.ddl_City_SelectedIndexChanged(new object(), new EventArgs()); }
这个地方加一个this.ddl_Province_SelectedIndexChanged(new object(), new EventArgs());
是为了让它在Page_load时便讲省份和城市的数据加载好。
否则页面加载完成后,省份那是出现了北京,但是市区那栏点开却不会显示北京的下辖区。
然后我的博客处子秀就算完成了,以后就分享一些高大上的东西。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示
- asp.net DropDownList 三级联动下拉菜单实现代码
- asp.net实现DropDownList、ListBox无刷新三级联动的两种方法
- asp.net DropDownList 三级联动下拉菜单
- 对asp.net实现DropDownList、ListBox无刷新三级联动(javascript)修改
- asp.net实现ListBox、DropDownList无刷新三级联动(xmlhttp)
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- Asp.net WebForm DropDownList 无限极联动(不需要写C#代码,不需要写JS,只是配置属性)
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- asp.net DropDownList 三级联动下拉菜单实现代码
- asp.net实现DropDownList、ListBox无刷新三级联动的两种方法
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- asp.net实现DropDownList、ListBox无刷新三级联动(javascript)
- asp.net(c#)用Ajax调用web 服务实现省市县三级联动
- asp.net实现ListBox、DropDownList无刷新三级联动(xmlhttp)
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- asp.net实现DropDownList、ListBox无刷新三级联动(javascript)
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
- 省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例[转帖]