您的位置:首页 > 编程语言 > ASP

Asp.net三级联动DropDownList C# 上

2020-03-05 12:47 831 查看

各位朋友大家好,第一篇博客,写点前段时间的作业吧。
前段时间看到了篇公众号文章,写的是推荐我们这些IT行业的人写写博客,记录自己做的东西,那个号主说他是大三开始写博客的,想了想我今年刚好也大三,那就写一个吧!

DropDwonList

这个控件其实蛮简单的,中文名称叫下拉列表,这次的作业内容是用这个控件做一个省市县三级联动的作业,就是选了省份它自动更新市区,选了市区自动更新县区。

思路

省市县的数据是一个txt文本,三级数据它是纵向排列的,每个地区都有一个编号,先导入文本内容,然后去判断编号,提取同一编号开头的数据就可以啦。

先看一下这个txt长啥样。
看到这里大家就懂了吧,如果是北京市,他的前三位都是110,然后创建DropDwonList控件的时候记得再拉一个ScriptManager控件,不然不能刷新好像是,不过不拉vs也会提示你的。

就是这样

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindProvince();
BindCity();
BindArea();
}
}
private void BindProvince()
{
string mp = Server.MapPath("sheng.txt");
StreamReader sr = new StreamReader(mp);
string address;
while ((address = sr.ReadLine()) != null)
{
string[] list = address.Split('\t');
int s = Convert.ToInt32(list[0]);
if (list[0].Substring(2, 4) == "0000" && s % 1000 == 0)
{
ddl_Province.Items.Add(list[1]);
}
}

}
private void BindCity()
{
ddl_Area.Items.Clear();
string mp = Server.MapPath("sheng.txt");
StreamReader sr = new StreamReader(mp);
string fisrt2 = ddl_Province.SelectedValue;
Console.WriteLine(ddl_Province.SelectedValue);
string address;
while ((address = sr.ReadLine()) != null)
{
string[] list = address.Split('\t');
int s = Convert.ToInt32(list[0]);
if (list[1] == fisrt2 && s % 100 == 0)
{
ddl_City.Items.Add(list[2]);

}
}
}

private void BindArea()
{
string mp = Server.MapPath("sheng.txt");
StreamReader sr = new StreamReader(mp);
ddl_Area.Items.Clear();
string fisrt2 = ddl_Province.SelectedValue;
string first4 = ddl_City.SelectedValue;
string address;
while ((address = sr.ReadLine()) != null)
{
string[] list = address.Split('\t');
if (list[1] == fisrt2)
{
if (list[2] == first4 )
{
ddl_Area.Items.Add(list[3]);
}
}
}
}

protected void ddl_City_SelectedIndexChanged(object sender, EventArgs e)
{
ddl_Area.Items.Clear();
BindArea();
}

protected void ddl_Province_SelectedIndexChanged(object sender, EventArgs e)
{
ddl_City.Items.Clear();
ddl_Area.Items.Clear();
BindCity();
BindArea();
}
}

ddl_Provinde就是省的下拉列表,BindProvince()就是绑定省的方法。
用最老土的方法StreamReader导入文本,最上面记得using System.IO;
first2就是编号前2位,first4就是前4位.,通过判断前几位数值是否相等来添加数据。
最后当下拉列表值发生改变再绑定其他数据就可以了。

弊端

这样的话写了三个绑定方法,文本就要调用3次,总的来说还是不够简洁,但是好处呢就是这样写好看,嗯没错就是好看,怎么看怎么舒服。

明天再写一个调用一次文本的方法,今天就这样了。

现在跟宿舍里玩游戏的同学越走越远了,也许注定我们不是同一个世界的人吧,大学三年。渐渐地对专业、班级没有了归属感,我宁愿在我的小圈子里努力做好自己的事情。二十几岁的人,每天就指望着游戏来满足你的成就感,这种生活我实在不喜欢。

人还是应该努力一点的。不然你在这干嘛,人生就这么一次,不要浪费呀!

你不努力,永远有别人比你更努力。生活总得有点向往吧。

唉,算了,发什么牢骚啊,做好自己即可了。该睡觉了,大家晚安吧!

上次打2k听到评论员一句话,分享给大家
Anything you can do,I can do better.

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
卓越的生命c 发布了2 篇原创文章 · 获赞 1 · 访问量 92 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: