/*
客户端控件,须有Id与Name
传入objValues:须为转入后的字符串
*/
function CallBackObject()
{
this.XmlHttp = this.GetHttpObject();
}
CallBackObject.prototype.GetHttpObject = function()
{
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
//提交到本页,objValues为空,默认提交本页所有控件数据,objValues:转义后的字符串
CallBackObject.prototype.DoCallBack = function(objValues)
{
var theData = '';
var theform = document.forms[0];
var thePage = thePage = window.location.pathname + window.location.search;
var eName = '';
var eventTarget = "";
var eventArgument = "";
theData = '__EVENTTARGET=' + escape(eventTarget.split("$").join(":")) + '&';
theData += '__EVENTARGUMENT=' + eventArgument + '&';
theData += '__VIEWSTATE=' + escape(theform.__VIEWSTATE.value).replace(new RegExp('\\+', 'g'), '%2b') + '&';
theData += 'IsCallBack=false&';
if (objValues == "")
{
for(i=0; i<theform.elements.length; i++ )
{
eName = theform.elements[i].name;
if( eName && eName != '')
{
if( eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' || eName == '__VIEWSTATE' )
{
// Do Nothing
}
else
{
theData = theData + escape(eName.split("$").join(":")) + '=' + escape(theform.elements[i].value);
if( i != theform.elements.length - 1 )
theData = theData + '&';
}
}
}
}
else
{
theData = objValues;
}
if( this.XmlHttp )
{
if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )
{
var oThis = this;
this.XmlHttp.open('POST', thePage, true);
this.XmlHttp.onreadystatechange = function(){ oThis.ReadyStateChange(); };
this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
this.XmlHttp.send(theData);
}
}
}
//将数据提交到指定页面(objPage),objValues为空,则提交本页面所有数据,objValues:转义后的字符串
CallBackObject.prototype.DoCallBackLogin = function (objValues,objPage)
{
var theData = '';
var theform = document.forms[0];
var thePage = "";
if (objPage == "")
thePage = window.location.pathname + window.location.search;
else
thePage = objPage;
var eName = '';
var eventTarget = "";
var eventArgument = "";
/*
theData = '__EVENTTARGET=' + escape(eventTarget.split("$").join(":")) + '&';
theData += '__EVENTARGUMENT=' + eventArgument + '&';
theData += '__VIEWSTATE=' + escape(theform.__VIEWSTATE.value).replace(new RegExp('\\+', 'g'), '%2b') + '&';
theData += 'IsCallBack=false&';
*/
if (objValues == "")
{
for(i=0; i<theform.elements.length; i++ )
{
eName = theform.elements[i].name;
if( eName && eName != '')
{
if( eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' || eName == '__VIEWSTATE' )
{
// Do Nothing
}
else
{
theData = theData + escape(eName.split("$").join(":")) + '=' + escape(theform.elements[i].value);
if( i != theform.elements.length - 1 )
theData = theData + '&';
}
}
}
}
else
{
theData = objValues;
}
if( this.XmlHttp )
{
if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )
{
var oThis = this;
this.XmlHttp.open('POST', thePage, true);
this.XmlHttp.onreadystatechange = function(){ oThis.ReadyStateChange(); };
this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
this.XmlHttp.send(theData);
}
}
}
CallBackObject.prototype.AbortCallBack = function()
{
if( this.XmlHttp )
this.XmlHttp.abort();
}
CallBackObject.prototype.OnLoading = function()
{
// Loading
}
CallBackObject.prototype.OnLoaded = function()
{
// Loaded
}
CallBackObject.prototype.OnInteractive = function()
{
// Interactive
}
CallBackObject.prototype.OnComplete = function(responseText, responseXml)
{
// Complete
}
CallBackObject.prototype.OnCompleteText = function(responseText)
{
// Complete
}
CallBackObject.prototype.OnCompleteDataSet = function(rows)
{
// Complete
}
CallBackObject.prototype.OnAbort = function()
{
// Abort
}
CallBackObject.prototype.OnError = function(status, statusText)
{
// Error
}
CallBackObject.prototype.ReadyStateChange = function()
{
if( this.XmlHttp.readyState == 1 )
{
this.OnLoading();
}
else if( this.XmlHttp.readyState == 2 )
{
this.OnLoaded();
}
else if( this.XmlHttp.readyState == 3 )
{
this.OnInteractive();
}
else if( this.XmlHttp.readyState == 4 )
{
if( this.XmlHttp.status == 0 )
this.OnAbort();
else if( this.XmlHttp.status == 200 && this.XmlHttp.statusText == "OK" )
{
this.OnComplete(this.XmlHttp.responseText, this.XmlHttp.responseXML);
this.OnCompleteText(this.XmlHttp.responseText);
// this.OnCompleteDataSet(this.DataRows(this.GetDomObject(this.XmlHttp.responseXML.xml)));
this.OnCompleteDataSet(new DataSet(this.GetDomObject(this.XmlHttp.responseText)));
}
else
this.OnError(this.XmlHttp.status, this.XmlHttp.statusText, this.XmlHttp.responseText);
}
}
//不同浏览器创建不同XML容器
CallBackObject.prototype.GetDomObject = function(st)
{
var result = null
try
{
if(window.ActiveXObject)
{
var aVersions = [ "MSXML2.DOMDocument.5.0",
"MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0",
"MSXML2.DOMDocument","Microsoft.XmlDom" ];
for (var i = 0; i < aVersions.length; i++) {
try {
result = new ActiveXObject(aVersions[i]);//IE
result.loadXML(st);
if (result.parseError.errorCode != 0)
{
alert("An Error Occurred: " + result.parseError.reason);
}
else
return result;
} catch (e)
{
// 不做任何处理
}
}
throw new Error("MSXML is not installed.");
}else
{
blnIsIe = false;
try{
var parser = new DOMParser();
result = parser.parseFromString(st, "text/xml");//MF
if (result.firstChild.tagName != "parsererror") {
//没有错误发生,进行所需操作
return result;
} else {
var oXmlSerializer = new XMLSerializer();
var sXmlError = oXmlSerializer.serializeToString(result);
var reError = />([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column(\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;
reError.test(sXmlError);
var str = "An error occurred!!\n" +
"Description: " + RegExp.$1 + "\n" +
"File: " + RegExp.$2 + "\n" +
"Line: " + RegExp.$3 + "\n" +
"Line Position: " + RegExp.$4 + "\n" +
"Source Code: " + RegExp.$5;
alert(str);
}
} catch(e)
{
// 不做任何处理
alert("未处理此浏览器的兼容!");
}
throw new Error("XML is no
没有合适的资源?快使用搜索试试~ 我知道了~
Ajax三级无刷新级联实例使用CallBackObject.js 简易Ajax框架
共9个文件
cs:3个
js:1个
mdf:1个
4星 · 超过85%的资源 需积分: 9 100 下载量 148 浏览量
2008-11-27
09:58:33
上传
评论 1
收藏 633KB RAR 举报
温馨提示
Ajax三级无刷新级联实例使用CallBackObject.js 简易Ajax框架,使用js实现,数据库为Sql2005的,自己学的一个小例子简单易懂。
资源推荐
资源详情
资源评论
收起资源包目录
AjaxCascade.rar (9个子文件)
AjaxCascade
App_Code
SqlDataAccess.cs 3KB
SqlHelper.cs 16KB
SuccessDemo
AjaxCascade.aspx.cs 2KB
AjaxCascade.aspx 4KB
JS
CallBackObject.js 11KB
Web.Config 2KB
App_Data
AjaxImg_Log.LDF 3.38MB
AjaxImg_Data.MDF 1.75MB
XML
UP.XML 442KB
共 9 条
- 1
资源评论
- wsldr1232013-03-01凑合凑合可以用,赞一个
- GOLDFOUNDER2012-11-30修改修改凑合能用
- feng1111feng2012-12-18并不是我想要的,但还是很感谢楼主分享!
- bai_si2011-12-25jar包不全,建议楼主补齐。
ggch_x
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功