我在做项目的时候需要 实现省市县的级联下拉功能,DropDownList从数据库中读取数据,在DropDownList选中省的时候就把选择省中的所有市名在另一个DropDownList中显示,县名显示如上
现在不知道怎么实现这个功能,请教各位高手提供实现代码,小妹在这里谢谢各位了
在线等答案!!!
现在不知道怎么实现这个功能,请教各位高手提供实现代码,小妹在这里谢谢各位了
在线等答案!!!
解决方案 »
- System.Null Reference 对象未实例化 (gridview 自定义编辑按钮)郁闷死我了,大家好心人帮忙看看啊
- 问个小问题!来者给分
- 关于frame框架页面中response.redirect 的问题
- 通过treeview增删节点如何实现对绑定的xml做相同修改?
- 什么时候象后面用onserverclick?<INPUT onserverclick="ShowValues type="submit" value="Submit" runat="server" >
- 发布一个我刚刚写了.Net的Ajax后台框架AjaxFramwork
- ----Page.Validate属性是啥意思呀,,,,SDK就一句介绍,不是很清楚..进来了.
- C#中怎么将listbox中的内容多选,添加到另一个listbox中
- 哪位仁兄有在ASP.NET中使用ACTIVEX控件的经验?请教如何将控件的内容取出。
- 有问题!!!!!清大家都来看看!!!!(急!)100分
- 关于Session存储的问题
- 怎么取得ComponentArt_WebUI grid 控件里的某行某列的值···附代码!
参考下http://topic.csdn.net/t/20060410/15/4675912.html 这个比较多的代码
Asynchronous JavaScript and XML
没了JavaScript
那就是aax了
//jb函数会根据不同的浏览器初始化个xmlhttp对象
function jb()
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
A=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
{
A=new XMLHttpRequest()
}
return A
}
//下面Go函数是父列表框改变的时候调用,参数是选择的条目
function Go(obj)
{
//得到选择框的下拉列表的value
var svalue = obj.value;
//alert(svalue);
var objID = obj.id;
//alert(objID);
var source;
var allArray;
source = objID.split("Province");
//alert(source[1]);
//alert(obj.id);
//定义要处理数据的页面
var weburl = "SMPReg.aspx?parent_id="+svalue;
//初始化个xmlhttp对象
var xmlhttp = jb();
//提交数据,第一个参数最好为get,第三个参数最好为true
xmlhttp.open("get",weburl,true);
//alert(xmlhttp.responseText);
//如果已经成功的返回了数据
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)//4代表成功返回数据
{
var result = xmlhttp.responseText;//得到服务器返回的数据
//alert(result);
//先清空selCityInEnduser的所有下拉项
document.getElementById("ctl00_ContentPlaceHolder2_selCity"+source[1]).length = 0;
//var a = document.getElementById("ctl00_ContentPlaceHolder2_selCity"+source[1]).id;
//alert(a);
//给selCityInEnduser加个全部型号的,注意是Option不是option
if(result!="")//如果返回的数据不是空
{
//把收到的字符串按照,分割成数组
allArray = result.split(",");
//alert(allArray);
var cityCode = allArray[1].split("|");
document.getElementById("ctl00_ContentPlaceHolder2_hidCity"+source[1]).value = cityCode[0].toString();
//alert(document.getElementById("ctl00_ContentPlaceHolder2_hidCity"+source[1]).value);
//循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
for(var i=1;i<allArray.length;i++)
{
//在把这个字符串按照|分割成数组
var thisArray = allArray[i].split("|");
}
}
}
}
//发送数据,请注意顺序和参数,参数一定为null或者""
xmlhttp.send(null); }cs code:
string str = Request.QueryString["parent_id"];
if (str != null)
{
BindCity(str);
}protected void BindCity(string provinceCode)
{
DataSet ds = bucustomerregister.GetCityInfo(provinceCode);
string result = "";
int rowCounts = ds.Tables[0].Rows.Count;
for (int i = 0; i < rowCounts; i++)
{
result += "," + ds.Tables[0].Rows[i]["DCode"].ToString() + "|" + ds.Tables[0].Rows[i]["DisplayName"].ToString();
}
//把从数据库得到的信息输出到客户端
Response.Write(result);
Response.Flush();
Response.Close();
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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><script language="JavaScript" type="text/javascript">
<!--
//以XML求取数据
//参数:
//obj,当前动作的下拉框
//fullName:要填充的下拉框
function XmlPost(obj,fullName)
{
//求取当前下拉框的值
var svalue = obj.value;
//定义要填充的对象
var fullObj = document.all(fullName);
//定义取值地址
var webFileUrl = "default2.aspx?sortid=" + svalue;
//定义返回值
var result = "";
//开始取值过程
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
alert(result);
//如果有取到值,则根据格式进行拆分
//注意如果选择了第一行"请选择"空行时,是取不到值的,因此多加了一个条件
if(result != "" && svalue != "")
{
//先清空原有的值
fullObj.length=0;
//拆分值成数组
var piArray = result.split(",");
//循环数组
for(var i=0;i<piArray.length;i++)
{
//再拆分成ID及名称
var ary1 = piArray[i].toString().split("|");
//逐一添加项
fullObj.options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
//如果没有取到值,则清空要填充的下拉框的值
fullObj.length = 0;
fullObj.options.add(new Option("请选择",""));
}
}
//-->
</script><body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="a" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="b" runat="server">
</asp:DropDownList></div>
</form>
</body>
</html>
cs代码:using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string depID = Request["sortId"];
if (depID != null && depID != "")
{
this.Bind(depID);
}
if (!this.IsPostBack)
{
BindA();
BingB();
}
}
private void BindA()
{
DataBase DB = new DataBase();
string Sql = "SELECT * FROM department";
DataTable DT = DB.GetDataTable(Sql);
this.a.DataSource = DT;
this.a.DataTextField = "departmentName";
this.a.DataValueField = "kb_departmentId";
this.a.DataBind();
//this.a.Items.Insert(0, new ListItem("请选择分类", "")); //ListItem item = this.a.Items.FindByValue("01");
//if (item != null)
//{
// item.Selected = true;
//}
this.a.Attributes.Add("onchange", "XmlPost(this,'" + this.b.ClientID + "');"); }
private void BingB()
{
DataBase DB = new DataBase();
string Sql = "SELECT Name,managerRight FROM [KB_Operator] WHERE managerRight='01'";
DataTable DT = DB.GetDataTable(Sql);
this.b.DataSource = DT;
this.b.DataTextField = "Name";
this.b.DataValueField = "managerRight";
this.b.DataBind();
this.b.Items.Insert(0, new ListItem("请选择名称", ""));
}
private void Bind(string DepID)
{
string str = "";
string Sql = "SELECT Name,managerRight FROM [KB_Operator] WHERE managerRight='" + DepID + "'";
DataBase DB = new DataBase();
DataTable dt = DB.GetDataTable(Sql);
if (dt.Rows.Count != 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
str += "," + dt.Rows[i]["managerRight"].ToString().Trim() + "|" + dt.Rows[i]["Name"].ToString(); }
str = str.Substring(1);
}
Response.Write(str);
Response.End();
}
}
向大家推荐一款功能强大的CF辅助程序,2008-10-3更新。具体功能请点击网址查看!