how plead .net page methods javascript but jquery?
i've perplexing page methods possess javascript formula nonetheless doesn't work. i jquery ajax i sucessfully page methods, nonetheless i need possess javascript formula since can't third-party libraries (we building the possess library).
whenever i jquery ajax methods i outcome page method, i tradition js methods i whole page behind ajax request.
there contingency something opposite proceed jquery handles ajax requests. does anyone know be?
below formula i same page slight jquery, works, formula i'm controlling own.
jquery
// jscript file
$(document).ready(function() {
$("#search").click(function() {
$.ajax({
type: "post",
url: "account.aspx/getdata",
data: "{}",
contenttype: "application/json; charset=utf-8",
datatype: "json",
success: function(msg) {
// substitui o contedo da div vom o retorno page method.
displayresult(msg);
}
});
});
});
custom js
function gethttpobject() {
var xhr = false;
(window.xmlhttprequest) {
xhr = new xmlhttprequest();
} else (window.activexobject) {
try {
xhr = new activexobject("msxml2.xmlhttp");
} catch(e) {
try {
xhr = new activexobject("microsoft.xmlhttp");
} catch(e) {
xhr = false;
}
}
}
relapse xhr;
}
function preparelinks() {
var btn = document.getelementbyid("search");
btn.onclick = function() {
var url = "account.aspx/getdata"
relapse !grabfile(url);
}
}
function grabfile(file) {
var ask = gethttpobject();
(request) {
displayloading(document.getelementbyid("result"));
request.onreadystatechange = function() {
parseresponse(request);
};
//abre o socket
request.open("get", file, true);
//envia requisio
request.send(null);
relapse true;
} else {
relapse false;
}
}
function parseresponse(request) {
(request.readystate == 4) {
(request.status == 200 || request.status == 304) {
var sum = document.getelementbyid("result");
details.innerhtml = request.responsetext;
fadeup(details,255,255,153);
}
}
}
function addloadevent(func) {
var oldonload = window.onload;
(typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
(oldonload) {
oldonload();
}
func();
}
}
}
addloadevent(preparelinks);
update: i've solid accept stevemegson's given answer tangible means problem. nonetheless i'd share yo few alterantives i've found problem.
stevemegson's answer:
all i change post ask set ask header json,that solved problem requesting page methods, nonetheless i'm haing tough doing response (i'll contend some-more another question).
here's right formula stuff:
print("function preparelinks() {
var list = document.getelementbyid("search");
list.onclick = function() {
var url = "pms.aspx/getdata"
relapse !grabfile(url);
} }");
print("function grabfile(file) {
var ask = gethttpobject();
if (request) {
//evento levantado pelo servidor cada mudana de estado na
//requisio assncrona
request.onreadystatechange = function() {
parseresponse(request);
};
//use post
request.open('post', file, true);
//set ask json
request.setrequestheader('content-type', 'application/json');
// send requisition
request.send(null)
relapse true;
} else {
relapse false;
}
}");
brendan's answer: by brendan's answer i small investigate icallback interface icallbackeventhandler. warn that's proceed arise aspx pages controlling microsoft's doing ajax request's. turns out unequivocally engaging solution, given dosen't need any js library work out it's inside .net horizon i trust wholly few know things (at slightest those around me didn't know during all).
if wanna know some-more abou icallback check ms only duplicate brew brendan's answer.
a third solution: another fortitude i found instead formulating aspx pages hoop server side formula i exercise html pages ashx files same thing nonetheless reduction bandwith an aspx page. good fortitude i maged work post requisitions. next code.
ashx code:
print("imports system.web
imports system.web.services
open category customhandler
implements system.web.ihttphandler
servant processrequest(byval context httpcontext) implements ihttphandler.processrequest
context.response.contenttype = "text/plain"
dim strbuilder new system.text.stringbuilder
strbuilder.append("<p>")
strbuilder.append("your name is: ")
strbuilder.append("<em>")
strbuilder.append(context.request.form(0))
strbuilder.append("</em>")
strbuilder.append("</p>")
context.response.write(strbuilder.tostring)
end sub
readonly ability isreusable() boolean implements ihttphandler.isreusable
get
relapse false
end finish ability finish class");
javascript file:
print("function preparelinks() {
var list = document.getelementbyid("search");
list.onclick = function() {
var url = "customhandler.ashx"
relapse !grabfile(url);
}
}");
print("function grabfile(file) {
var ask = gethttpobject();
if (request) {
request.onreadystatechange = function() {
parseresponse(request);
};
//verso post
request.open('post', file, true);
request.setrequestheader('content-type', 'application/x-www-form-urlencoded');
request.send('name=helton valentini')
relapse true;
} else {
relapse false;
} }");
with any 3 options asynchronous calls but jquery, controlling the possess javacript controlling resources microsoft embeeded .net framework.
i wish helps the you.
Comments
Post a Comment