⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 microsoftajaxadonet.js

📁 ajax
💻 JS
📖 第 1 页 / 共 2 页
字号:
Type._registerScript("MicrosoftAjaxAdoNet.js",["MicrosoftAjaxWebServices.js"]);Type.registerNamespace("Sys.Data");if(!Sys.Data.IDataProvider){Sys.Data.IDataProvider=function(){};Sys.Data.IDataProvider.prototype={fetchData:function(){}};Sys.Data.IDataProvider.registerInterface("Sys.Data.IDataProvider")}if(!Sys.Data.MergeOption){Sys.Data.MergeOption=function(){throw Error.notImplemented()};Sys.Data.MergeOption.prototype={appendOnly:0,overwriteChanges:1};Sys.Data.MergeOption.registerEnum("Sys.Data.MergeOption")}Sys.Data.AdoNetQueryBuilder=function(a){this._queryParameters={};this._uri=a;var b=a.indexOf("?");if(b>=0){this._uri=a.substr(0,b);var d=a.substr(b+1).split("&");for(var e in d){param=d[e];var c=param.indexOf("=");if(c>=0)this._queryParameters[decodeURIComponent(param.substr(0,c))]=decodeURIComponent(param.substr(c+1));else this._queryParameters[decodeURIComponent(param)]=""}}};Sys.Data.AdoNetQueryBuilder.prototype={_queryParameters:null,_uri:null,get_skip:function(){return this._getIntParam("$skip")},set_skip:function(a){this._setParam("$skip",a)},get_top:function(){return this._getIntParam("$top")},set_top:function(a){this._setParam("$top",a)},get_orderby:function(){return this._getStringParam("$orderby")},set_orderby:function(a){this._setParam("$orderby",a)},get_filter:function(){return this._getStringParam("$filter")},set_filter:function(a){this._setParam("$filter",a)},get_expand:function(){return this._getStringParam("$expand")},set_expand:function(a){this._setParam("$expand",a)},get_resourcePath:function(){return this._uri},get_queryParameters:function(){return this._queryParameters},set_queryParameters:function(a){this._queryParameters=a},toString:function(){var a,e,b,c=[];for(a in this._queryParameters)if(!Array.contains(Sys.Data.AdoNetQueryBuilder._queryOptions,a)){b=this._queryParameters[a];if(b!=null)Array.add(c,{key:a,value:b})}for(e in Sys.Data.AdoNetQueryBuilder._queryOptions){a=Sys.Data.AdoNetQueryBuilder._queryOptions[e];b=this._queryParameters[a];if(b!=null)Array.add(c,{key:a,value:b})}var d=new Sys.StringBuilder(this._uri),f=true;for(e in c){d.append(f?"?":"&");d.append(encodeURIComponent(c[e].key));d.append("=");d.append(encodeURIComponent(c[e].value));f=false}return d.toString()},_getIntParam:function(b){var a=parseInt(this._queryParameters[b]);return isNaN(a)?null:a},_getStringParam:function(b){var a=this._queryParameters[b];return a||null},_setParam:function(b,a){if(typeof a==="undefined"||a===null)delete this._queryParameters[b];else this._queryParameters[b]=a}};Sys.Data.AdoNetQueryBuilder._queryOptions=["$filter","$orderby","$skip","$top"];Sys.Data.AdoNetQueryBuilder.registerClass("Sys.Data.AdoNetQueryBuilder");Sys.Data._AdoNetUtil=function(){};Sys.Data._AdoNetUtil.concatUris=function(b,a){if(a.indexOf("//")>=0)return a;if(b.endsWith("/"))b=b.substr(0,b.length-1);if(a.startsWith("/"))a=a.substr(1);return b+"/"+a};Sys.Data._AdoNetUtil.extractETag=function(a){return a.__metadata?a.__metadata.etag||null:null};Sys.Data._AdoNetUtil.extractUri=function(a){return a.__metadata?a.__metadata.uri||null:null};Sys.Data._AdoNetUtil.registerClass("Sys.Data._AdoNetUtil");Sys.Data.AdoNetActionResult=function(d,b,a,c){this._result=d;this._headers=b||{};this._actionContext=a;this._operation=c};Sys.Data.AdoNetActionResult.prototype={_actionContext:null,_operation:null,_result:null,_headers:null,get_httpHeaders:function(){return this._headers},get_actionContext:function(){return this._actionContext},get_operation:function(){return this._operation},get_result:function(){return this._result}};Sys.Data.AdoNetActionResult.registerClass("Sys.Data.AdoNetActionResult");Sys.Data.AdoNetActionSequence=function(a){this._actionQueue=[];this._dataService=a};Sys.Data.AdoNetActionSequence.prototype={get_serviceProxy:function(){return this._dataService},addInsertAction:function(d,b,c){var a=this._actionQueue;a[a.length]=[0,b,d,c]},addUpdateAction:function(d,c,b){var a=this._actionQueue;a[a.length]=[1,c||null,d,b]},addRemoveAction:function(c,b){var a=this._actionQueue;a[a.length]=[2,null,c,b]},clearActions:function(){this._actionQueue=[]},execute:function(j,k,l){var g=this._actionQueue,b=new Sys.Data._AdoNetBatchWriter(window.location.host),i=this._dataService;this._actionQueue=[];b.startChangeSet();for(var f=0,m=g.length;f<m;f++){var c=g[f],d=c[1],e=c[2],h=Sys.Data._AdoNetUtil.extractETag(e);switch(c[0]){case 0:c[0]="insert";b.addChange(d,h,"POST",Sys.Serialization.JavaScriptSerializer.serialize(e),f);break;case 1:c[0]="edit";if(!d)d=Sys.Data._AdoNetUtil.extractUri(e);b.addChange(d,h,i.get_replaceOnUpdate()?"PUT":"MERGE",Sys.Serialization.JavaScriptSerializer.serialize(e));break;case 2:c[0]="remove";d=Sys.Data._AdoNetUtil.extractUri(e);b.addChange(d,h,"DELETE",null)}}b.endChangeSet();var a=new Sys.Net.WebRequest;a.set_url(Sys.Data._AdoNetUtil.concatUris(i.get_serviceUri(),"$batch"));a.get_headers()["Content-Type"]="multipart/mixed; boundary="+b.get_topBoundary();a.set_httpVerb("POST");a.set_timeout(i.get_timeout());a.set_body(b.get_requestBody());a.set_userContext({q:g,bw:b,c:l,s:j,f:k});a.add_completed(Function.createDelegate(this,this._batchCompleted));a.invoke();return a},_batchCompleted:function(e){var d,a,b,f=e.get_webRequest().get_userContext(),o=f.q,m=f.f,l=f.s,j=f.c,s=f.bw,c=this._dataService._checkForError(e,"actionSequence",false);function q(){var a=b.status?parseFloat(b.status.code):-1;if(a<200||a>300){var e;if(b.headers["Content-Type"]==="application/json"){var d=Sys.Serialization.JavaScriptSerializer.deserialize(b.body);c=Sys.Data.AdoNetServiceError._getError(false,a,null,d,"actionSequence")}else c=Sys.Data.AdoNetServiceError._getError(false,a,String.format(Sys.Data.AdoNetRes.operationFailed,"actionSequence"))}}function h(){if(m)m(c,j,"actionSequence")}if(c){h();return}a=Sys.Data._AdoNetBatchReader._parseResponse(e);if(a.length!==1){c=Sys.Data.AdoNetServiceError._getError(false,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,e.get_webRequest().get_url()));h();return}a=a[0];if(a.length===1){b=a[0];q();if(c){h();return}}if(a.length!==o.length){c=Sys.Data.AdoNetServiceError._getError(false,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,e.get_webRequest().get_url()));h();return}if(l){var p=a.length,n=new Array(p);for(var g=0;g<p;g++){b=a[g],body=b.body;d=null;if(body){d=Sys.Serialization.JavaScriptSerializer.deserialize(body);if(d&&d.d)d=d.d}var k=o[g],i=k[3],r=k[0];if(typeof i==="undefined")i=null;n[g]=new Sys.Data.AdoNetActionResult(d,b.headers,i,r)}l(n,j,"actionSequence")}}};Sys.Data.AdoNetActionSequence.registerClass("Sys.Data.AdoNetActionSequence");Sys.Data.AdoNetInvokeParametersBuilder=function(){this._queryBuilder=new Sys.Data.AdoNetQueryBuilder("");this._parameters=this._queryBuilder.get_queryParameters()};Sys.Data.AdoNetInvokeParametersBuilder.prototype={_parameters:null,_queryBuilder:null,get_parameters:function(){return this._parameters},addBoolean:function(b,a){this._parameters[b]=a.toString()},addDate:function(d,a,b){var c=b?a.format("yyyy-MM-ddTHH:mm:ss.fffffffzzz"):a.format("yyyy-MM-ddTHH:mm:ss.fffffff");this._parameters[d]="datetime'"+c+"'"},addDecimal:function(b,a){this._parameters[b]=a.toString()+"M"},addDouble:function(b,a){this._parameters[b]=a.toString()},addGuid:function(b,a){this._parameters[b]="guid'"+a+"'"},addInteger:function(b,a){this._parameters[b]=a.toString()},addString:function(b,a){this._parameters[b]="'"+a.replace(new RegExp("'","g"),"''")+"'"},toString:function(){return this._queryBuilder.toString()}};Sys.Data.AdoNetInvokeParametersBuilder.registerClass("Sys.Data.AdoNetInvokeParametersBuilder");Sys.Data.AdoNetServiceError=function(d,e,c,a,b){this._errorObject=b||null;Sys.Data.AdoNetServiceError.initializeBase(this,[d,e,c,a])};Sys.Data.AdoNetServiceError.prototype={_errorObject:null,get_errorObject:function(){return this._errorObject}};Sys.Data.AdoNetServiceError.registerClass("Sys.Data.AdoNetServiceError",Sys.Net.WebServiceError);Sys.Data.AdoNetServiceError._getError=function(g,k,h,c,f){var b,e=c?c.error:null;if(!e)b=new Sys.Data.AdoNetServiceError(g,String.format(h||Sys.Data.AdoNetRes.operationFailed,f));else{var a=e.message,d=e.innererror,i,j;a=a&&a.value?a.value:null;if(d){j=d.type;i=d.stacktrace}b=new Sys.Data.AdoNetServiceError(g,String.format(h||a||Sys.Data.AdoNetRes.operationFailed,f),i||null,j||null,c)}b._statusCode=k;return b};Sys.Data.AdoNetServiceProxy=function(a){this._serviceUri=a;Sys.Data.AdoNetServiceProxy.initializeBase(this)};Sys.Data.AdoNetServiceProxy.prototype={_replaceOnUpdate:false,_serviceUri:null,_usePostTunneling:true,get_path:function(){return this.get_serviceUri()},get_replaceOnUpdate:function(){return this._replaceOnUpdate},set_replaceOnUpdate:function(a){this._replaceOnUpdate=a},get_serviceUri:function(){return this._serviceUri},createActionSequence:function(){return new Sys.Data.AdoNetActionSequence(this)},insert:function(g,d,b,c,e,f){var a=this._prepareWebRequest(g,d,"POST",b,c,e,"insert",f);a.invoke();return a},invoke:function(c,b,a,f,g,h,i){var e=new Sys.Data.AdoNetQueryBuilder(c);if(a){var j=e.get_queryParameters();for(key in a)j[key]=a[key]}b=b||"GET";var d=this._prepareWebRequest(null,e.toString(),b,f,g,h,c,i);d.invoke();return d},fetchData:function(b,d,k,l,h,i,g,j){var f,c=null;if(typeof g!=="undefined"){c=this.get_timeout();this.set_timeout(g)}if(d){var a="";for(var e in d){if(a)a+="&";a+=encodeURIComponent(e)+"="+encodeURIComponent(d[e])}if(b.indexOf("?")===-1)b+="?"+a;else b+="&"+a}f=this.query(b,h,i,j);if(c!==null)this.set_timeout(c);return f},fetchDeferredProperty:function(a,b,e,g,h,i){var f=Function.createDelegate(this,function(g,f,d){a[b]=g;var c=e||this.get_defaultSucceededCallback();if(c)c(a,f,d)}),c;if(a[b]&&a[b].__deferred&&a[b].__deferred.uri)c=a[b].__deferred.uri;else if(a.__metadata&&a.__metadata.uri)c=a.__metadata.uri+"/"+b;var d=this._prepareWebRequest(null,c,"GET",f,g,h,b,i);d.invoke();return d},query:function(b,c,d,e,f){var a=this._prepareWebRequest(null,b,"GET",c,d,e,b,f);a.invoke();return a},update:function(f,b,c,d,e){var g=this._replaceOnUpdate?"PUT":"MERGE",a=this._prepareWebRequest(f,null,g,b,c,d,"update",e);a.invoke();return a},remove:function(f,b,c,d,e){var a=this._prepareWebRequest(f,null,"DELETE",b,c,d,"remove",e);a.set_body(null);delete a.get_headers()["Content-Type"];a.invoke();return a},_checkForError:function(c,i,k){var a,f=null,g=false,b=0;if(!c.get_responseAvailable()){g=c.get_timedOut();a=g?Sys.Data.AdoNetRes.operationTimedOut:String.format(Sys.Data.AdoNetRes.operationFailed,i)}else{b=c.get_statusCode();if(b===1223||b===0)b=204;if(k){var h=c.getResponseHeader("DataServiceVersion");if(!h.startsWith("1.0;")&&b!==204)a=h.length>0?String.format(Sys.Data.AdoNetRes.serviceVersionTooHigh,this.get_serviceUri()):String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,this.get_serviceUri())}if(!a&&(b<200||b>=300)){var d=c.getResponseHeader("Content-Type");if(d.startsWith("application/json"))f=c.get_object();else if(d.startsWith("application/xml")||d.startsWith("text/xml")){var l=c.get_xml(),e=l.documentElement.getElementsByTagName("message");if(e&&e.length){var j=e[0];if(j.childNodes.length)a=j.childNodes[0].nodeValue}if(!a)a=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,this.get_serviceUri())}else a=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,this.get_serviceUri())}}if(a||f)return Sys.Data.AdoNetServiceError._getError(g,b,a,f,i);return null},_onResponseComplete:function(c,f,e,d,b){var g=this._checkForError(c,b,true);if(g){if(e)e(g,d,b)}else if(f){var h=c.getResponseHeader("Content-Type"),a=null;if(h.startsWith("application/json")){a=c.get_object();a=a.d||a}f(a,d,b)}},_prepareWebRequest:function(e,k,i,g,f,d,l,a){a=a||new Sys.Net.WebRequest;a.set_url(Sys.Data._AdoNetUtil.concatUris(this._serviceUri,k||""));a.set_timeout(this.get_timeout());var b=a.get_headers();b["Accept"]="application/json";b["DataServiceVersion"]="1.0;AspNetAjax";b["MaxDataServiceVersion"]="1.0;";a.set_httpVerb(i);if(this._usePostTunneling){var c=i.toUpperCase();if(c==="PUT"||c==="DELETE"||c==="MERGE"){a.set_httpVerb("POST");b["X-HTTP-Method"]=c}}if(e){a.set_body(Sys.Serialization.JavaScriptSerializer.serialize(e));b["Content-Type"]="application/json";var h=Sys.Data._AdoNetUtil.extractETag(e);if(h)b["If-Match"]=h;var j=Sys.Data._AdoNetUtil.extractUri(e);if(j)a.set_url(j)}g=g||this.get_defaultSucceededCallback();f=f||this.get_defaultFailedCallback();if(typeof d==="undefined"||d===null)d=this.get_defaultUserContext();a.add_completed(Function.createDelegate(this,function(a){this._onResponseComplete(a,g,f,d,l)}));return a}};Sys.Data.AdoNetServiceProxy.registerClass("Sys.Data.AdoNetServiceProxy",Sys.Net.WebServiceProxy,Sys.Data.IDataProvider);Sys.Data._AdoNetBatchReader=function(a,b){this._responseBody=a;this._boundary=[b];this._position=0;this._responses=[];this._parseParts(this._responses)};Sys.Data._AdoNetBatchReader.prototype={get_responses:function(){return this._responses},_parseParts:function(c){if(this._readToMark("--"+this._currentBoundary(),true)===null)return;this._readLine();var d=null;while(d!=="--"&&!this._eof()){var b=[];this._parseHeaders(b);var a=b["Content-Type"];if(a.indexOf("multipart/mixed")===0){var e=[];this._boundary.push(Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(a));this._parseParts(e);this._boundary.pop();c.push(e);var f=this._readToMark("--"+this._currentBoundary(),true)}else if(a.indexOf("application/http")===0)c.push(this._parseHttpResponse());d=this._peek(2);this._readLine()}},_parseHttpResponse:function(){var d=this._readLine(),c=this._parseStatus(d),b=[];this._parseHeaders(b);var a=this._readToMark("--"+this._currentBoundary(),true);if(a==="\r\n")a="";return {status:c,headers:b,body:a}},_parseHeaders:function(c){for(var a=this._readLine();a;a=this._readLine()){var b=this._parseHeader(a);c[b.name]=b.value}},_parseHeader:function(a){if(a===null)return null;var b=a.indexOf(":");return b===-1?null:{name:a.substring(0,b).trim(),value:a.substring(b+1).trim()}},_parseStatus:function(b){var a=Sys.Data._AdoNetBatchReader._statusRegExp.exec(b);return a?{code:a[1],text:a[2]}:null},_currentBoundary:function(){return this._boundary[this._boundary.length-1]},_eof:function(){return this._position===-1},_readLine:function(){return this._readToMark("\r\n",false)},_readToMark:function(c,d){if(this._eof())return null;var a,b=this._responseBody.indexOf(c,this._position);if(b<0)if(d)a=null;else{a=this._responseBody.substring(this._position);this._position=-1}else{a=this._responseBody.substring(this._position,b);this._position=b+c.length}return a},_peek:function(a){if(this._eof())return "";return this._responseBody.substring(this._position,this._position+a)}};Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader=function(b){var c=/;\s*boundary=(.*)$/i,a=c.exec(b);return a?a[1]:null};Sys.Data._AdoNetBatchReader._parseResponse=function(a){var b=new Sys.Data._AdoNetBatchReader(a.get_responseData(),Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(a.getResponseHeader("Content-Type")));return b.get_responses()};Sys.Data._AdoNetBatchReader._statusRegExp=new RegExp("^HTTP\\/1\\.[01] (\\d{3}) (.*)$","i");Sys.Data._AdoNetBatchReader.registerClass("Sys.Data._AdoNetBatchReader");Sys.Data._AdoNetBatchWriter=function(a){this._host=a;this._content="";this._boundary=null;this._changesetBoundary=null;this._changesetEntries=null;this._contentType="application/json"};Sys.Data._AdoNetBatchWriter.prototype={get_contentType:function(){return this._contentType},set_contentType:function(a){this._contentType=a},get_requestBody:function(){return this._content+"--"+this.get_topBoundary()+"--"},get_topBoundary:function(){if(!this._boundary)this._boundary="batch_"+this._createBoundary();return this._boundary},addChange:function(b,e,c,d,a){this._changesetEntries.push({uri:b,eTag:e,method:c,body:d,contentId:a})},addQuery:function(a){this._content+=this._startPart(this.get_topBoundary(),"GET",a,null)+"\r\n"},endChangeSet:function(){var a="";for(var c in this._changesetEntries){var b=this._changesetEntries[c];a+=this._startPart(this._changesetBoundary,b.method,b.uri,b.eTag,b.contentId);if(b.body)a+="Content-Type: "+this._contentType+";charset=utf-8\r\n";a+="\r\n";if(b.body)a+=b.body}if(a)a+="\r\n--"+this._changesetBoundary+"--\r\n";this._content+="\r\n--"+this.get_topBoundary()+"\r\nContent-Type: multipart/mixed;boundary="+this._changesetBoundary+"\r\n\r\n"+a;this._changesetBoundary=null;this._changesetEntries=null},startChangeSet:function(){this._changesetBoundary="changeset_"+this._createBoundary();this._changesetEntries=[]},_createBoundary:function(){function a(){return Math.floor((1+Math.random())*65536).toString(16).substr(1)}return a()+"-"+a()+"-"+a()},_startPart:function(d,e,f,c,b){var a="\r\n--"+d+"\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\n\r\n"+e+" "+f+" HTTP/1.1\r\n";if(typeof b==="number")a+="Content-ID: "+b+"\r\n";if(c)a+="If-Match: "+c+"\r\n";a+="Host: "+this._host+"\r\nAccept: "+this.get_contentType()+"\r\nAccept-Charset: utf-8\r\n";return a}};Sys.Data._AdoNetBatchWriter.registerClass("Sys.Data._AdoNetBatchWriter");
Type.registerNamespace('Sys.Data');Sys.Data.AdoNetRes={'uriNotAdoNetService':'The URI \'{0}\' does not point to an ADO.NET Data Service.','invalidBatchResponse':'The batch operation failed due to an invalid response from \'{0}\'.','operationTimedOut':'The data operation \'{0}\' timed out.','operationFailed':'The data operation \'{0}\' failed.','serviceVersionTooHigh':'The URI \'{0}\' points to an ADO.NET Data Service of a higher version than is supported by this library.'};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -