AJAX实现不拖控件的页面

//根据不同的浏览器创建异步对象
function createXmlHttp() {
    xhobj = false;
    try {
        xhobj = new ActiveXObject("Msxml2.XMLHTTP"); // iemsxml3.0+
    } catch (e) {
        try {
            xhobj = new ActiveXObject("Microsoft.XMLHTTP"); //iemsxml2.6
        } catch (e2) {
            xhobj = false;
        }
    }
    if (!xhobj && typeof XMLHttpRequest != 'undefined') {// Firefox, Opera 8.0+, Safari,谷歌浏览器
        xhobj = new XMLHttpRequest();
    }
    return xhobj;
}
//根据Id返回对应的dom对象
function gel(id) { return document.getElementById(id); }


window.onload = function () {
    xhr = createXmlHttp(); //当浏览器加载完所有的资源后便创建异步对象
    getPagedData(1); //向服务器请求第一页数据
}

//(get 提交方式)根据页码 从服务器获得 当前页数据
function getPagedData(pi) {
    pageIndex = pi;
    xhr.open("get", "ClassList.ashx?pi=" + pi, true);
    xhr.setRequestHeader("If-Modified-Since", "0"); //不是用缓存
    xhr.onreadystatechange = callback; //设置回调函数
    xhr.send(null);
}
//回调函数
function callback() {
    if (xhr.readyState == 4) {//异步状态
        if (xhr.status == 200) {//如果服务器没有出错(请求正常)
            var res = xhr.responseText; //获取服务器返回的[json格式字符串]
            //将包含json格式元素的数组字符串 转成 js对象
            var resJson = eval("(" + res + ")");
            //创建表格数据
            createTable(resJson);
            //调用 创建页码条方法 传入 返回数组的最后一个元素(包含 总页数和总行数)
            createPageBar(resJson[resJson.length - 1]);
        }
    }
}


//(post提交方式)执行修改
function doModify() {
    xhr.open("post", "UpdateClass.ashx", true);
    //使用post方式提交数据时 需要设置 参数的编码格式
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) { //如果服务器没有出错(请求正常)
                var res = xhr.responseText; //获得服务器返回的 [json格式字符串]
                if (res == "ok") {
                    var tbList = document.getElementById("mT"); //获得数据表格dom对像
                    //循环表格 所有行 并通过对比每一行第一列的值至找到要被修改的行
                    for (i = 1; i < tbList.rows.length; i++) {
                        if (tbList.rows[i].childNodes[0].innerHTML == modifyId) {
                            tblist.rows[i].childNodes[1].innerHTML = document.getElementById("txtClassName").value;
                            tblist.rows[i].childNodes[2].childNodes[0].innerHTML = document.getElementById("cimg").src;
                            tblist.rows[i].childNodes[4].innerHTML = document.getElementById("txtCount").value;
                            tblist.rows[i].childNodes[5].innerHTML = document.getElementById("txtSupport").value;
                            tblist.rows[i].childNodes[6].innerHTML = document.getElementById("txtAgainst").value;
                            //隐藏修改面板
                            var mp = document.getElementById("modifyPanel");
                            mp.style.display = "none";
                            break;
                        }
                    }
                } else {
                    alert("修改失败!");
                }
            }
        }
    }
    xhr.send("id=" + modifyId + "&className=" + encodeURI(gel("txtClassName").value) + "&count =" + gel("txtCount").value + "&support=" + gel("txtSupport").value + "&against=" + gel("txtAgainst").value);
}

posted @ 2011-06-26 20:04  SharonWang  阅读(110)  评论(0编辑  收藏  举报