创建XMLHttpReqeust对象.XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不是HTTP请求。
function CreateXMLHttp() {
var xhr = false;
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xhr = false;
}
}
if (!xhr && typeof XMLHttpRequest != 'undefined') {
xhr = new XMLHttpRequest();
}
return xhr;
}
var xhr = false;
window.onload = function () {
xhr = createXmlHttp();
Getjson();
}
function Getjson() {
xhr.open("GET", "Do.ashx", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var Grades = gel("Grades");
var txt = xhr.responseText;
var txtArray = txt.split("|");
for (var i = 0; i < txtArray.length; i++) {
var StrArray = txtArray[i].split(",");
//alert(StrArray[0] + StrArray[1]);
var option1 = new Option(StrArray[1], StrArray[0]);
Grades.options.add(option1);
}
}
}
}
xhr.send(null);
}
List<MODEL.Grades> list = new BLL.Grades().QueryListByCondition(null);
System.Text.StringBuilder sbText = new System.Text.StringBuilder();
foreach (MODEL.Grades model in list)
{
//1.年级
sbText.Append(model.GID+","+model.GName+","+model.GIsDel+","+model.GAddtime+"|");
}
context.Response.Write(sbText.ToString().Substring(0,sbText.Length-2));//把最后的|去掉
三层结构,利用AJAX动态的加载下拉框. 上面用的是将实体对象,拼接成字符串,在Javascript中进行split。比较麻烦。下面用JSON格式来操作
AJAX传递复杂数据如果自己进行格式定义的话会经历组装、解析的过程,因此AJAX中有一个事实上的数据传输标准JSon。Json(是一个标准,就像XML一样,Json规定了对象以什么样的格式保存为一个字符串)将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为JavaScript可以读取的对象。看一下Json的格式。Json被几乎所有语言支持。定义.
var json={"a":"111","b":"2222"};
json格式 以键值对格式存储的.