ScriptManager 以及ScriptManagerProxy Service属性的使用
?
在VS2008中,有些是和VS2005有区别的: 1.?????? 创建项目选择”ASP.NET Web Site” ,而不是 “ASP.NET Web Application”,后者添加的WebService文件的后台代码不会放在App_Code中,导致前台脚本访问WebService中的方法的时候,会出现” WebService未定义”的错误。 2.?????? 在VS2008中使用母版页的时候,要把ScriptManager 添加在表单里,且不能添加在ContentPlaceHolder中,这个是使用拖放控件常犯的错误。 <form id="form1" runat="server"> ?? <div> ?????????? ?????????? <asp:ScriptManager ID="ScriptManager1" runat="server"> ??????????????? <Services> ??????????????????? <asp:ServiceReference Path="~/WebService.asmx" /> ??????????????? </Services> ??????????? </asp:ScriptManager> ?????????? ??????? <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> ??????? </asp:ContentPlaceHolder> ??? </div> ??? </form> 添加内容页后,页面会自动生成 <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content> 我们在内容页使用ajax时,要添加ScriptManagerProxy 在 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content> 中。 ScriptManager 以及ScriptManagerProxy? Service属性的使用: 1.?? <asp:ScriptManager ID="ScriptManager1" runat="server"> ??????????????? <Services> ??????????????????? <asp:ServiceReference Path="~/WebService.asmx" /> ????? ??????????</Services> ??????????? </asp:ScriptManager> 2.?????? WebService.asmx这里是创建的Web Service: VS2005自动给我们生成了许多代码,当要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,就把下行的注释给取消了就行了。不用在添加命名空间的引用。 [System.Web.Script.Services.ScriptService] 3.?????? 脚本调用WebService
? ??? <script language="javascript" type="text/javascript"> // <!CDATA[
?
function btnAdd_onclick() { ??? requestSampleService = WebService.Add( ??????? document.getElementById("txtName").value,?? //属性 ??????? onRequestComplete??? //回调结束 ??? ); ??? return false; }
?
function onRequestComplete(result) { ??? alert(result); } // ]]>
?
注:WebService是创建的WebService的类名,我们调用的是它的Add()方法,其中包含一个参数。 4.?????? 浏览,OK (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |