当前位置:编程学习 > C#/ASP.NET >>

在C#里如何实现 省 市

大家肯定都知道在申请QQ的时候
在申请页面的中间会有2个下拉框,第一个下拉框是选省的,第二个下拉框是选相应的省对应的是市的

请问这个功能是怎么实现的啊?? --------------------编程问答-------------------- 这个简单,用GridView实现两级连动,你在网上查一下GridView都应该有 --------------------编程问答-------------------- 他们都叫这个二级联动,易做图联动,或者联动。

道理很简单,第一个选框的选中值为参数查询数据库,把返回的数据填充到第二个下拉框。

搜索一下很多源码。 --------------------编程问答-------------------- 以前在这里就有很多人问了,搜索一下吧。 --------------------编程问答-------------------- 简单,原理相当于 2维数组
 当一个省对应很多个市或县的时候 是否可以得到结果
 添加到下拉列表 只需绑定控件即可
 a[1][1],
 a[1][2]....
 比如1是湖南省 后面的,1,2...等是不是可以对应市或县 --------------------编程问答-------------------- 看这两篇文章:
用showModalDialog弹出窗口和UltraWebTree树实现的行政区域(省,市,县)
Asp.net用Ajax实现省市联动 --------------------编程问答-------------------- 这里是一个例子。创建一个aspx页面,把以下代码拷贝进去,然后直接在浏览器上查看页面。

<%@ Page Language="C#" %>

<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>
--------------------编程问答-------------------- 这里只是随手写个简单demo。要javascript吗?不需要。

学asp.net的人,不要对这类编程感到神秘了。如果想搞点离奇的编程代码,可以用各种编写方式。但是,请对asp.net2.0中作为基本控件的UpdatePanel学会使用。这样,当别人跟你说一些很玄乎的编程时,你可以更好地评估自己需要去学多少。 --------------------编程问答-------------------- 设计表时 把省的ID值定义为市表中的外键盘...
之后放两个DropdownList 分别为省和市
在查询数据时进行关联就行...

//绑定省      
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();
--------------------编程问答-------------------- AJAX...代码就是楼上们的…… --------------------编程问答-------------------- 一般都是用做好的控件往上一放就可以了,自己写很麻烦D --------------------编程问答-------------------- 如果需要控件 Q:87222823 --------------------编程问答-------------------- 用XML准备好数据分组
然后联动更新下拉列表 --------------------编程问答-------------------- 可以用JAVASCRIPT实现,也可以用服务器控件实现

其实原理就是父级控件的selectedIndex变动时,更新子级的Item --------------------编程问答-------------------- 用ajax,和winform一样简单 --------------------编程问答-------------------- js即可
<html>
<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>
--------------------编程问答-------------------- 去网上找这个数据库 --------------------编程问答-------------------- 代码网上很多,动态往comboBox里添加数据就可以了,我有省市数据库需要的话,跟我联系,wudeqing1005@163.com --------------------编程问答-------------------- 这个是联动效果
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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,