问题描述
以前用AjaxPro好像很容易,但换成MsAjax后不知该怎么做.要能实现异步回传的,就是在页面中使用了UpdatePanel控件.我提问一般都是给100分的.知道的快来吧.
解决方案
解决方案二:
没用过.
解决方案三:
该回复于2008-04-10 08:33:57被版主删除
解决方案四:
没用过.
解决方案五:
该回复于2008-04-10 08:33:55被版主删除
解决方案六:
我现在正在学一本书叫asp.netajax程序设计第II卷microsoftajaxlibrary异步通信层是陈黎夫写的讲的都是客户端编程.
解决方案七:
微软教程(深入浅出AJAX)有讲这些的,很好很强大,讲得不错
解决方案八:
不是吧,没人懂.
解决方案:
是啊,用UpdatePanel太小题大作了,会的师傅指点一下.
解决方案:
JF,http://www.cnblogs.com/dflying/archive/2006/11/27/573860.html
解决方案:
首先页面上要有ScriptManager后台代码:usingSystem.Web.Services;[WebMethod]publicstaticDateTimeGetCurrentTime(){returnDateTime.UtcNow;}
前台代码:<inputtype="button"value="GetCurrentTime"onclick="getCurrentTime()"/><scriptlanguage="javascript"type="text/javascript">functiongetCurrentTime(){PageMethods.GetCurrentTime(getCurrentTimeSucceeded);}functiongetCurrentTimeSucceeded(result){alert(result);}</script>
解决方案:
引用楼主gxzys的帖子:
以前用AjaxPro好像很容易,但换成MsAjax后不知该怎么做.要能实现异步回传的,就是在页面中使用了UpdatePanel控件.我提问一般都是给100分的.知道的快来吧.
页面中你是看不到回调的。封装好了,ASP.NETAJAX第一卷讲UpdatePanel,就是你把以前做的项目打开,把所有的控件放到UpdatePanel里面,执行的时候,无刷新,哈哈,完全不用改任何代码,全部封装好了。ASP.NETAJAX第二卷,讲回调就非常详细了。主要是讲客户端调用WebServices,和AjaxPro原理就有点像了。建议你直接看第二卷。
解决方案:
另外和我有点像,我提问都是给100分。
解决方案:
ASP.NETAJAX是不需要用JS来调用客户端方法的.像服务器控件一样使用,只是他刷新的<UpdatePanel>内部内容.其实我也不怎么懂,用ASP.NETAJAX可以给服务端方法传参数的吗?
解决方案:
手写代码吧.....
解决方案:
up
解决方案:
把需要无刷新的控件放在UpdatePanel里就行了外面好象还要加个什么manage什么的
解决方案:
上面有正解了,你自己慢慢看吧
解决方案:
<scriptrunat="server">protectedvoidPage_Load(objectsender,EventArgse){if(this.Page.IsPostBack){System.Threading.Thread.Sleep(3000);}}protectedvoidGvR_DataBound(objectsender,GridViewRowEventArgse){GridViewGV=(GridView)sender;if(GV.SortExpression.Length>0){intcellIndex=-1;foreach(DataControlFieldfieldinGV.Columns){if(field.SortExpression==GV.SortExpression){cellIndex=GV.Columns.IndexOf(field);break;}}if(cellIndex>-1){if(e.Row.RowType==DataControlRowType.Header){e.Row.Cells[cellIndex].CssClass+=(GV.SortDirection==SortDirection.Ascending?"sortascheader":"sortdescheader");}elseif(e.Row.RowType==DataControlRowType.DataRow){e.Row.Cells[cellIndex].CssClass+=(e.Row.RowIndex%2==0?"sortaltrow":"sortrow");}}}}</script><body><formid="form"runat="server"><asp:ScriptManagerrunat="server"/><scripttype="text/javascript">functiononUpdating(){varpnlPopup=$get('<%=this.pnlPopup.ClientID%>');varpnlPopupBounds=Sys.UI.DomElement.getBounds(pnlPopup);vargridView=$get('<%=this.gvCustomers.ClientID%>');vargridViewBounds=Sys.UI.DomElement.getBounds(gridView);pnlPopup.style.display='';varx=gridViewBounds.x+Math.round(gridViewBounds.width/2)-Math.round(pnlPopupBounds.width/2);vary=gridViewBounds.y+Math.round(gridViewBounds.height/2)-Math.round(pnlPopupBounds.height/2);Sys.UI.DomElement.setLocation(pnlPopup,x,y);}functiononUpdated(){varpnlPopup=$get('<%=this.pnlPopup.ClientID%>');pnlPopup.style.display='none';}</script><div><asp:UpdatePanelID="updatePanel"runat="server"UpdateMode="Conditional"><ContentTemplate><asp:GridViewID="GridView1"runat="server"AllowSorting="true"OnRowDataBound="GvR_DataBound"AutoGenerateColumns="false"><Columns>...</Columns></asp:GridView></ContentTemplate></asp:UpdatePanel><ajaxToolkit:UpdatePanelAnimationExtenderrunat="server"TargetControlID="updatePanel"><Animations><OnUpdating><Parallelduration="0"><ScriptActionScript="onUpdating();"/></Parallel></OnUpdating><OnUpdated><Parallelduration="0"><ScriptActionScript="onUpdated();"/></Parallel></OnUpdated></Animations></ajaxToolkit:UpdatePanelAnimationExtender></div></form></body>
解决方案:
楼主给我100分···
解决方案:
mark
解决方案:
这个问题困扰我好久了,没用ajax时可以用_doPostBack实现,用了ajax后,好像button生成的html不一样了,现在用ajaxToolkit后,连onclick的代码都不生成了,真郁闷.9楼10楼的方法用的是静态方法,不实用,其实我自己都发现用gridview控件的oncommand事件可以期骗服务端,但太麻烦,有没有更好的方法,直接js调用服务端代码,继续顶.谁有解块方案的加到200分都行.来抢分啊.
解决方案:
up
解决方案:
直接使用ajax来执行服务器代码就可以,什么dll都不需要给个简单的例子给你,获取服务器时间的test.aspx,注意名字不要改,要不需要修改对应的js<%@PageLanguage="C#"debug="true"%><scriptrunat="server">voidPage_Load(Objectsender,EventArgse){if(Request.QueryString["readtime"]=="1"){Response.Write(ServerMethodGetTime());Response.End();//停止输出}}protectedstringServerMethodGetTime(){return"服务器时间:"+DateTime.Now.ToString();}</script><html><head></head><body><inputtype="button"onclick="ExecServerMethod()"value="点我执行获取服务器时间的方法"/><scripttype="text/javascript">functioncreateObj(){varo=null;if(typeof(XMLHttpRequest)!="undefined")returnnewXMLHttpRequest();//ie7和w3cif(window.ActiveXObject)//ie6-{varMSXML=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];for(vari=0;i<MSXML.length;i++){try{o=newActiveXObject(MSXML[i]);returno;}catch(e){}}}}functionExecServerMethod(){varo=createObj();if(o){o.onreadystatechange=function(){if(o.readyState==4)//已经返回{if(o.status==200)//成功返回alert(o.responseText);elsealert("发生错误!");}}//如果你改了aspx的名称,注意这里要改成一样的名称,要不出现404错误o.open("get","test.aspx?readtime=1&rnd="+Math.random(),true);o.send(null);//发送请求}elsealert("创建对象失败!");}</script></body></html>
解决方案:
无满意答案.
解决方案:
PatrickPan
我是这样理解的:AjaxPro和微软的ajax.net都可以显示无刷新。AjaxPro需要收写代码,调用服务器端方法,用JavaScript在UI上显示。微软的Ajax则是傻瓜式的,调用服务端方法都是在控件中集成了,不需要手写回调服务端方法。合理使用一些例如UpdatePanel之类的组件就OK了。
解决方案:
回25楼:关键是,我如何通过JS调用后台代码刷新UpdatePanel呢?
解决方案:
up
解决方案:
gz一下
解决方案:
不用写代码,设置好就OK了。
解决方案:
学习,up
解决方案:
发了这么多天了,没人解答.
解决方案:
没人知道啊.
解决方案:
不喜欢asp.netajax.要是我我就手写..同意23楼的做法.
解决方案:
回25楼:关键是,我如何通过JS调用后台代码刷新UpdatePanel呢?==============================================不用寫JS代碼,都封裝好了,直接拿來用就OK了。配置好UpdatePanel就行了。這是asp.netajax開發的初衷,傻瓜似的。如果要手寫代碼像ajax.netpro那樣,直接用ajax.netpro就OK了。不是沒人知道,是你的理解力有問題。
解决方案:
学习