ta.Pid == pid) { wantedList.Add(data); } } //拼json形式的字符串 //[{ Id: 1, Name: 河北省, PId: 0 }, // { Id: 2, Name: 日本省, PId: 0 }, // { Id: 3, Name: 台湾省, PId: 0 } // ] StringBuilder sb = new StringBuilder(); sb.Append([); foreach (Data data in wantedList) { sb.Append({ Id: +data.Id+, Name: +data.Name+, PId: +data.Pid+ },); } sb.Remove(sb.Length - 1, 1); sb.Append(]); return sb.ToString(); } ///
/// 模拟从数据库中加载数据,返回泛型集合 /// ///
private List
GetAllDatas() { List
list = new List
(); list.Add(new Data() { Id = 1, Name = 河北省, Pid = 0 }); list.Add(new Data() { Id = 2, Name = 台湾省, Pid = 0 }); list.Add(new Data() { Id = 3, Name = 日本省, Pid = 0 }); list.Add(new Data() { Id = 4, Name = 石家庄, Pid = 1 }); list.Add(new Data() { Id = 5, Name = 邯郸市, Pid = 1 }); list.Add(new Data() { Id = 6, Name = 邢台市, Pid = 1 }); list.Add(new Data() { Id = 7, Name = 高雄市, Pid = 2 }); list.Add(new Data() { Id = 8, Name = 台北, Pid = 2 }); list.Add(new Data() { Id = 9, Name = 台中, Pid = 2 }); list.Add(new Data() { Id = 10, Name = 东京, Pid = 3 }); list.Add(new Data() { Id = 11, Name = 冲绳, Pid = 3 }); list.Add(new Data() { Id = 12, Name = 大阪, Pid = 3 }); return list; } public bool IsReusable { get { return false; } } }
pro.htm:
<script src=ajax.js type=text/java script><script type=text/java script> window.onload = function () { loadProvince(); } function loadProvince() { var province = my$(province); //发送异步请求获取省的数据 ajax(get, 06-pro.ashx pid=0, null, function (s) { //把字符串转化成对象 var array = eva l(s); for (var i = 0; i < array.length; i++) { var json = array[i]; var option = document.createElement(option); option.innerHTML = json.Name; option.value = json.Id; province.appendChild(option); } //当省加载完,再加载市 loadCity(); }, function () { alert(服务器内部错误); }); } function loadCity() { var pid = my$(province).value; var city = my$(city); //清空下拉框 city.innerHTML = ; ajax(get, 06-pro.ashx pid= + pid, null, function (s) { //把字符串转化成对象 var array = eva l(s); for (var i = 0; i < array.length; i++) { var json = array[i]; var option = document.createElement(option); option.innerHTML = json.Name; option.value = json.Id; city.appendChild(option); } }, function () { alert(服务器内部错误); }); }
自己封装的ajax:
function my$(id) {
return document.getElementById(id);
}
var xhr = createXHR();
function createXHR() {
var request;
if (XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = new ActiveXObject(Microsoft.XMLHTTP);
}
return request;
}
function ajax(method,url,data,fnSuccess,fnError) {
xhr.open(method, url, true);
if (method == post) {
//!------------------!注意
xhr.setRequestHeader(Content-Type, application/x-www-form-urlencoded);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var s = xhr.responseText;
fnSuccess(s);
} else {
fnError();
}
}
}
xhr.send(data);
}