前台JavaScript获得如何接收后台类中ajax注册方法的值 ajax取值问题 后台已经写好一个返回值是string的方法 并且能够查询出结果 前台接受的时候 var a= 类名。方法名()结果a 总是取到空值或者是 object 这个怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 兄弟 尽量贴出部分代码js ajax 部分 代码 var a= 类名。方法名() 倒是挺有创意的!呵呵,你写的类是后台代码,ajax是客户端脚本,二者怎么可能这么方便的就直接进行交互了呢?楼主还是好好的看看ajax的基础知识吧。 你问的这个是最基础的问题。有什么网上搜不到的再来问吧! var xmlhttp; //创建XMLhttpRequest function CreateXmlhttp() { try { if(window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlhttp=new XMLHttpRequest(); } } catch(Error) { throw new Error("无法创建xmlHttpRequest"); } } //获取省 window.onload=function(){ tick(); CreateXmlhttp(); xmlhttp.open("post","Help.aspx?action=true",true); xmlhttp.onreadystatechange=SelectProvince; xmlhttp.send(null); } //省的回调函数 function SelectProvince() { if(xmlhttp.readyState==4 || xmlhttp.readyState=="Complete") { var ContrPrice=xmlhttp.responseText; var arry=new Array(); arry=ContrPrice.split("/"); var text=new Array(); var values=new Array(); text=arry[1].split(","); values=arry[0].split(","); var province=document.getElementById("Select1"); for(var i=0;i<text.length-1;i++) { var option=document.createElement("option"); option.innerHTML=text[i]; option.value=values[i]; province.appendChild(option); } } }红色的部分就是取你后台传过来的string值 ..不红。 var ContrPrice=xmlhttp.responseText; 呵呵,有这种写法,楼主用的应该和我一样,是一个开源的Ajax.dll控件用了这个控件后,在前台js里就可以这么写:var a= 类名。方法名();但是得到的确实是对象,如果楼主确实和我用的是同样的dll,应该这么写:var a= 类名。方法名()if(a && !a.error){ a = a.value; alert(a);}else{ alert("出错了");} 1.在web.config<httpHandlers></httpHandlers>中加入设置 <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>2.注册ajaxPro.dll AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//Ajaxpro.dll的 3.在后台方法类前加入声明,如: [AjaxPro.AjaxMethod] public static DataTable test() {...}4,前台js调用 var test=类名.方法名.value; ajax 扩展组件1.0 我用的是ajax控件 不需要再从回调函数做起的 如果你是用var a = 调用方法的返回值的话,那么,值就应该等于a.value,这才是取方法的值 如果这也取不到,你就用断点测试下方法进去没有,如果进去了,而且在执行中没有任何错误,也没有出现被强制跳出方法的情况,那绝对不会取不到值;强制跳出方法外的情况,主要是不能使用一些当前页面的控件什么的;一使用就会强制中止的,不过可以传session 你漏了.value4,前台js调用 var test=类名.方法名.value; var Pro_id= document.getElementById("ctl00_ContentPlaceHolder1_DDL_Pro").value; var result= AppClass.AjaxGetCityList(Pro_id).value; alert (result);这样的话弹出是null AppClass.AjaxGetCityList(Pro_id)在运行过程中能取得string值 那你试一下后台调用AppClass.AjaxGetCityList(Pro_id)这个看一下返回什么 返回的是string 这个方法本身是正确 就是要把这个值传给var a 呃...这么怪,没试过不行的!看还有没有其他大神说一下什么问题吧,我觉得不可能的得不到!要不换一个ajax.dll试一下吧! var a= 类名。方法名() 取回为对象那说明程序运行正常是你的后台代码错误,返回的就是一个对象啊!!!你不让他返回对象不就得了 protected void Page_Load(object sender, EventArgs e) { //注册ajax if (!Page.IsPostBack) { AjaxPro.Utility.RegisterTypeForAjax(typeof(Welcom)); } }还是不行 DataBinding:“System.Data.DataRowView”不包含名为“ChangeTime”的属性。急急急...求解释 我怎么安装不上IIS? 关于中学排课系统中的遗传算法,出RMB求救!!! 一个奇怪的问题。求助 怎么获得当前页的url 关于新闻发布的问题(新手求教) 如何实现本地文件上传到FTP服务器 如何在文件上传完成后执行本页内的一个Javascript函数。 请问一下用C#怎么实现获取包含在 DataSet 中的表的集合 怎么样传递web窗体? 求识别图片上数字的方法?急啊!! 还有人上班吗?大家来说说 ASP.NET MVC2 的Area
呵呵,你写的类是后台代码,ajax是客户端脚本,二者怎么可能这么方便的就直接进行交互了呢?楼主还是好好的看看ajax的基础知识吧。 你问的这个是最基础的问题。有什么网上搜不到的再来问吧!
var xmlhttp;
//创建XMLhttpRequest
function CreateXmlhttp()
{
try
{
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xmlhttp=new XMLHttpRequest();
}
}
catch(Error)
{
throw new Error("无法创建xmlHttpRequest");
}
}
//获取省
window.onload=function(){
tick();
CreateXmlhttp();
xmlhttp.open("post","Help.aspx?action=true",true);
xmlhttp.onreadystatechange=SelectProvince;
xmlhttp.send(null);
}
//省的回调函数
function SelectProvince()
{
if(xmlhttp.readyState==4 || xmlhttp.readyState=="Complete")
{
var ContrPrice=xmlhttp.responseText; var arry=new Array();
arry=ContrPrice.split("/");
var text=new Array();
var values=new Array();
text=arry[1].split(",");
values=arry[0].split(",");
var province=document.getElementById("Select1");
for(var i=0;i<text.length-1;i++)
{
var option=document.createElement("option");
option.innerHTML=text[i];
option.value=values[i];
province.appendChild(option);
}
}
}
红色的部分就是取你后台传过来的string值
用了这个控件后,在前台js里就可以这么写:
var a= 类名。方法名();
但是得到的确实是对象,如果楼主确实和我用的是同样的dll,应该这么写:
var a= 类名。方法名()
if(a && !a.error){
a = a.value;
alert(a);
}else{
alert("出错了");
}
<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
2.注册ajaxPro.dll
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//Ajaxpro.dll的
3.在后台方法类前加入声明,如:
[AjaxPro.AjaxMethod]
public static DataTable test()
{...}
4,前台js调用
var test=类名.方法名.value;
ajax 扩展组件1.0
我用的是ajax控件 不需要再从回调函数做起的
那么,值就应该等于a.value,这才是取方法的值
你漏了.value4,前台js调用
var test=类名.方法名.value;
var Pro_id= document.getElementById("ctl00_ContentPlaceHolder1_DDL_Pro").value;
var result= AppClass.AjaxGetCityList(Pro_id).value;
alert (result);这样的话弹出是null AppClass.AjaxGetCityList(Pro_id)在运行过程中能取得string值
返回的是string 这个方法本身是正确 就是要把这个值传给var a
是你的后台代码错误,返回的就是一个对象啊!!!
你不让他返回对象不就得了
{
//注册ajax
if (!Page.IsPostBack)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Welcom));
} }还是不行