C# 实现 省市区三级联动(表中包含经纬度取自淘宝地址管理)
来源:互联网 发布:华为 算法工程师 面试 编辑:程序博客网 时间:2024/04/27 14:16
老生常谈,就不用再多介绍省市区三级联动的用处了,直接上效果图:
前台代码:
<asp:DropDownList ID="seachprov" runat="server" CssClass="span4" AutoPostBack="true" OnSelectedIndexChanged="seachprov_SelectedIndexChanged"></asp:DropDownList> <asp:DropDownList ID="seachcity" runat="server" CssClass="span4" AutoPostBack="true" OnSelectedIndexChanged="seachcity_SelectedIndexChanged"> <asp:ListItem Value="0">请选择</asp:ListItem></asp:DropDownList> <asp:DropDownList ID="seachdistrict" runat="server" CssClass="span4"> <asp:ListItem Value="0">请选择</asp:ListItem></asp:DropDownList>
后台C#代码:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindCityArea("0", seachprov);//初始化代码绑定省份 if (!string.IsNullOrEmpty(getCookies["ClientTel"])) { this.BindShowUpInfo(getCookies["ClientTel"]); } } } //编辑是如何在绑定省市区显示 public void BindShowUpInfo(string strUpid) { if (!string.IsNullOrEmpty(strUpid)) { using (EastAgricultureDataContext db = new EastAgricultureDataContext()) { UserInfo getNot = db.UserInfo.Single(x => x.tel ==strUpid); var area = getNot.areacity.Split(' '); if (area.Length > 0) { seachprov.Items.FindByText(area[0]).Selected = true; //var getCity = (from p in db.areas where p.parentid == db.areas.Single(x => x.areaname == area[1]).parentid select new { p.id, p.areaname }).ToList(); //seachcity.DataTextField = "areaname"; //seachcity.DataValueField = "id"; //seachcity.DataSource = getCity; //seachcity.DataBind(); seachcity.Items.Insert(0, new ListItem("请选择")); BindCityArea(db.areas.Single(x => x.areaname == area[1]).parentid, seachcity); seachcity.Items.FindByText(area[1]).Selected = true; //var getDis = (from p in db.areas where p.parentid==db.areas.Single(x => x.areaname == area[1]).id select new { p.id, p.areaname }).ToList(); //seachdistrict.DataTextField = "areaname"; //seachdistrict.DataValueField = "id"; //seachdistrict.DataSource = getDis; //seachdistrict.DataBind(); seachdistrict.Items.Insert(0, new ListItem("请选择")); BindCityArea(db.areas.Single(x => x.areaname == area[1]).id, seachdistrict); seachdistrict.Items.FindByText(area[2]).Selected = true; } } } }protected void seachprov_SelectedIndexChanged(object sender, EventArgs e){string pid = seachprov.SelectedItem.Value.Trim();if (pid != "0"){//初始化 市和县级列表//初始化市列表seachcity.Items.Clear(); /*seachdistrict.Items.Clear(); seachdistrict.Items.Insert(0, new ListItem("请选择"));*/using (EastAgricultureDataContext db = new EastAgricultureDataContext()){var getCity = (from p in db.areas where p.parentid == pid select new { p.id, p.areaname }).ToList();if (getCity.Count == 1){seachcity.DataTextField = "areaname";seachcity.DataValueField = "id";seachcity.DataSource = getCity;seachcity.DataBind(); seachcity.Items.Insert(0, new ListItem("请选择"));//var getDis = (from p in db.areas where p.parentid == getCity[0].id select new { p.id, p.areaname }).ToList();//seachdistrict.DataTextField = "areaname";//seachdistrict.DataValueField = "id";//seachdistrict.DataSource = getDis;//seachdistrict.DataBind(); seachdistrict.Items.Insert(0, new ListItem("请选择"));BindCityArea(getCity[0].id, seachdistrict);}else{seachcity.DataTextField = "areaname";seachcity.DataValueField = "id";seachcity.DataSource = getCity;seachcity.DataBind(); seachcity.Items.Insert(0, new ListItem("请选择"));}}}}protected void seachcity_SelectedIndexChanged(object sender, EventArgs e){string pid = seachcity.SelectedItem.Value.Trim();if (pid != "0"){BindCityArea(pid, seachdistrict);}}/// <summary>/// 共通引用部分 绑定省市区///初始化 市和县级列表///初始化市列表/// </summary>/// <param name="codeid"></param>/// <param name="ddlArea"></param>public void BindCityArea(string codeid, DropDownList ddlArea){ddlArea.Items.Clear();using (EastAgricultureDataContext db = new EastAgricultureDataContext()){var getDis = (from p in db.areas where p.parentid == codeid select new { p.id, p.areaname }).ToList();ddlArea.DataTextField = "areaname";ddlArea.DataValueField = "id";ddlArea.DataSource = getDis;ddlArea.DataBind(); ddlArea.Items.Insert(0, new ListItem("请选择"));}}
SQL表结构及数据:
-- ------------------------------ Table structure for areas-- ----------------------------DROP TABLE [dbo].[areas]GOCREATE TABLE [dbo].[areas] ([id] nvarchar(10) NULL ,[areaname] nvarchar(100) NULL ,[parentid] nvarchar(10) NULL ,[shortname] nvarchar(50) NULL ,[lng] nvarchar(30) NULL ,[lat] nvarchar(30) NULL ,[level] int NULL ,[position] nvarchar(100) NULL ,[sort] int NULL )GO数据过大另附下载地址:http://download.csdn.net/detail/kongwei521/9427179
1 0
- C# 实现 省市区三级联动(表中包含经纬度取自淘宝地址管理)
- Android 地址选择器,实现省市区三级联动
- Android 地址选择器,实现省市区三级联动
- 实现省市区三级联动
- 省市区三级联动地址保存
- 三级联动:js实现淘宝地址更改
- 如何实现淘宝地址中的三级联动
- JQ实现三级联动(省市区)地址选项
- 使用pickerview实现(省市区)地址选择器的三级联动
- js实现省市区三级联动
- js实现省市区三级联动
- javaScript实现省市区三级联动
- jquery实现省市区三级联动
- RecyclerView 实现省市区三级联动
- 省市区 三级联动 js 实现
- 省市区三级联动实现1
- 省市区三级联动实现2
- js实现省市区三级联动
- LeetCode-58-Length of Last Word(字符串)-Easy
- 第七天课程(团购 微博项目)-琐碎知识
- 从零自学Hadoop(18):Hive的CLI和JDBC
- 大型网站架构演化历程
- Arduino接口-week4-Lesson2
- C# 实现 省市区三级联动(表中包含经纬度取自淘宝地址管理)
- 3D Touch介绍: 一个数字压力器App和Quick Actions
- Android核心组件之BroadcastReceiver
- 当面临补考和自学单片的冲突
- 文本文件与字符编码
- canvas导出为图片并用JS下载
- 树莓派 CentOS 系统下载地址
- 日记——web前端(1)
- ViewConfiguration.get(context).getScaledTouchSlop()详解