在C#里如何实现 省 市
大家肯定都知道在申请QQ的时候在申请页面的中间会有2个下拉框,第一个下拉框是选省的,第二个下拉框是选相应的省对应的是市的
请问这个功能是怎么实现的啊?? --------------------编程问答-------------------- 这个简单,用GridView实现两级连动,你在网上查一下GridView都应该有 --------------------编程问答-------------------- 他们都叫这个二级联动,易做图联动,或者联动。
道理很简单,第一个选框的选中值为参数查询数据库,把返回的数据填充到第二个下拉框。
搜索一下很多源码。 --------------------编程问答-------------------- 以前在这里就有很多人问了,搜索一下吧。 --------------------编程问答-------------------- 简单,原理相当于 2维数组
当一个省对应很多个市或县的时候 是否可以得到结果
添加到下拉列表 只需绑定控件即可
a[1][1],
a[1][2]....
比如1是湖南省 后面的,1,2...等是不是可以对应市或县 --------------------编程问答-------------------- 看这两篇文章:
用showModalDialog弹出窗口和UltraWebTree树实现的行政区域(省,市,县)
Asp.net用Ajax实现省市联动 --------------------编程问答-------------------- 这里是一个例子。创建一个aspx页面,把以下代码拷贝进去,然后直接在浏览器上查看页面。
<%@ Page Language="C#" %>--------------------编程问答-------------------- 这里只是随手写个简单demo。要javascript吗?不需要。
<script runat="server">
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DropDownList2.Items.Clear();
switch (this.DropDownList1.SelectedValue)
{
case "北京":
this.DropDownList2.Items.Add("易做图广场");
this.DropDownList2.Items.Add("颐和园");
this.DropDownList2.Items.Add("雍和宫");
this.DropDownList2.Items.Add("红螺寺");
break;
case "上海":
this.DropDownList2.Items.Add("崇明岛");
this.DropDownList2.Items.Add("外滩");
this.DropDownList2.Items.Add("万佛阁");
break;
case "香港":
this.DropDownList2.Items.Add("海洋公园");
this.DropDownList2.Items.Add("半岛酒店");
break;
}
}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
this.Label1.Text = "您选择了:" + this.DropDownList2.SelectedValue;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>北京</asp:ListItem>
<asp:ListItem>上海</asp:ListItem>
<asp:ListItem>香港</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" />
<br />
<br />
<hr />
<asp:Label ID="Label1" runat="server" EnableViewState="False" Font-Size="Small"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
学asp.net的人,不要对这类编程感到神秘了。如果想搞点离奇的编程代码,可以用各种编写方式。但是,请对asp.net2.0中作为基本控件的UpdatePanel学会使用。这样,当别人跟你说一些很玄乎的编程时,你可以更好地评估自己需要去学多少。 --------------------编程问答-------------------- 设计表时 把省的ID值定义为市表中的外键盘...
之后放两个DropdownList 分别为省和市
在查询数据时进行关联就行...
--------------------编程问答-------------------- AJAX...代码就是楼上们的…… --------------------编程问答-------------------- 一般都是用做好的控件往上一放就可以了,自己写很麻烦D --------------------编程问答-------------------- 如果需要控件 Q:87222823 --------------------编程问答-------------------- 用XML准备好数据分组
//绑定省
SqlConnection con = StuDB.createSqlconnection();
con.Open();
SqlCommand cmd = new SqlCommand("select * from Adept", con);
SqlDataReader sdr = cmd.ExecuteReader();
this.ddlAdept.DataSource = sdr;
this.ddlAdept.DataTextField = "ProName"; //省名字
this.ddlAdept.DataValueField = "ProID"; //省ID
this.ddlAdept.DataBind();
sdr.Close();
//绑定专业
SqlCommand cmd2 = new SqlCommand("select * from Profession where AdeptID=" + this.ddlAdept.SelectedValue, con);
sdr = cmd2.ExecuteReader();
this.ddlProfession.DataSource = sdr;
this.ddlProfession.DataTextField = "CityName"; //城市名
this.ddlProfession.DataValueField = "CityID"; //城市ID
this.ddlProfession.DataBind();
sdr.Close();
con.Close();
然后联动更新下拉列表 --------------------编程问答-------------------- 可以用JAVASCRIPT实现,也可以用服务器控件实现
其实原理就是父级控件的selectedIndex变动时,更新子级的Item --------------------编程问答-------------------- 用ajax,和winform一样简单 --------------------编程问答-------------------- js即可
<html>--------------------编程问答-------------------- 去网上找这个数据库 --------------------编程问答-------------------- 代码网上很多,动态往comboBox里添加数据就可以了,我有省市数据库需要的话,跟我联系,wudeqing1005@163.com --------------------编程问答-------------------- 这个是联动效果
<script type="text/javascript">
var citys=[
["西安","咸阳","宝鸡","渭南","汉中"],
["深圳","广州","中山","东莞","惠州","佛山","珠海"],
["上海"]
];
function getCity()
{
var sltProvince=document.getElementById("province");
var sltCity=document.getElementById("city");
sltCity.options.length=1;
if(sltProvince.selectedIndex>0)
{
var provinceCity=citys[sltProvince.selectedIndex-1];
for(var i=0; i<provinceCity.length; i++)
{
var city=new Option(provinceCity[i],i);
sltCity.options.add(city);
}
}
}
</script>
<body>
<select name="province" id="province" onchange="getCity();" >
<option value="0">请选择省份</option>
<option value="1">陕西</option>
<option value="2">广东</option>
<option value="3">上海</option>
</select>
<select name="city" id="city">
<option value="0">请选择城市</option>
</select>
</body>
</html>
1.创建两个数据表:省表,城市表
2.拖拉出两个DropDownList控件(ddlguestprovince,ddlguestcity)
3.ddlguestprovince绑定省表的数据,ddlguestcity绑定成事表的数据
4.编写ddlguestprovince_SelectedIndexChanged事件,代码如下:
注:Selectprovincetocity为我自己写的查询数据的方法,你可以换成自己的方法就可以了。
protected void ddlguestprovince_SelectedIndexChanged(object sender, EventArgs e)
{
ddlguestcity.Items.Clear();
string termone = ddlguestprovince.SelectedValue;
DataTable dt = new DataTable();
dt = gta.Selectprovincetocity(termone);
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
string itemname = dt.Rows[i]["Csb_csm"].ToString();
ddlguestcity.Items.Add(itemname);
ddlguestcity.Items[i].Value = dt.Rows[i]["Csb_csbh"].ToString();
}
ddlguestcity.TabIndex = 0;
} --------------------编程问答-------------------- [img=http://][/img]
补充:.NET技术 , C#