问题描述
我在测试中碰到了这样一个问题,两个AjaxMethod:C#:[AjaxPro.AjaxMethod]publicintServerSideAdd(intfirstnumber,intsecondnumber){returnfirstnumber+secondnumber;}[AjaxPro.AjaxMethod]publicstringoutputHtml(){this.WebGoodsGrid1.GoodsList=this.getTable();returnWebGoodsGrid1.geneGoodsGridHtml();}//WebGoodsGrid1是一个自定义Web控件,geneGoodsGridHtml是一个返回生成的HTML代码方法在ASPX中<scriptlanguage="javascript"type="text/javascript">varresponse=ajaxTest.ServerSideAdd(100,99);alert(response.value);response=ajaxTest.outputHtml();alert(response.value);</script>ajaxTest.ServerSideAdd可以正确返回值,但ajaxTest.outputHtml却返回null,如果在C#AjaxPro.AjaxMethodputHtml()中去掉自定义控件部分,然后修改成返回一个其它变量属性之类的都能正确返回,是不是AjaxPro中不支持使用自定义控件?
解决方案
解决方案二:
没人知道吗?
解决方案三:
你有在PAGE_LOAD時宣告這個嗎?AjaxPro.Utility.RegisterTypeForAjax(typeof(PAGE_NAME));
解决方案四:
写了,不写ajaxTest.ServerSideAdd也不会有返回值
解决方案五:
Utility.RegisterTypeForAjax(typeof(PAGE_NAME),this.Page);
解决方案六:
用ScriptManage吧<asp:ScriptManagerID="ScriptManager2"runat="server"EnablePageMethods="true"/>在这里要加上EnablePageMethods="true"属性在JS中用functionxx(){....PageMethods.ServerSideAdd(s1,s2,..,ReturnValue)//这里的s1,s2中参数,ReturnValue是函数}functionReturnValue(result){alert(result);}C#:[System.Web.Services.WebMethod]publicintServerSideAdd(intfirstnumber,intsecondnumber){returnfirstnumber+secondnumber;}这样绝对可以正确返回数据