Posted by: Crab Lin on: 2009/02/09
在Part1文章已成功的在DNN4.x使用jQuery,已可以使用jQuery的語法,再來我們要用WebServices的方式實踐ClientAPI。
首先我們得先確認web.config內是否設定下列項目(DNN4.x因為有使用MS的ClientAPI,皆已設定下列數值)
<httpHandlers> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=********************" /> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=********************" /> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=********************" validate="false" /> </httpHandlers>
// WebServices/CrabWS.asmx
...
using System.Web.Script.Services;
...
namespace Crab.WS
{
[WebService(Namespace = "Crab.WS")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class UserService
{
[WebMethod]
public string getName()
{
return "Crab Lin";
}
[WebMethod]
public bool NameEquals(string nameA, string nameB)
{
return nameA.Equals(nameB);
}
}
}
//OnPageLoad
protected void Page_Load(System.Object sender, System.EventArgs e)
{
...
if (DotNetNuke.Framework.AJAX.IsInstalled())
{
DotNetNuke.Framework.AJAX.RegisterScriptManager();
}
// Create a reference to the Script Manager
ScriptManager objScriptManager = ScriptManager.GetCurrent(this.Page);
objScriptManager.EnablePageMethods = true;
ServiceReference objServiceReference = new ServiceReference();
objServiceReference.Path = @"WebService/CrabWS.asmx";
objServiceReference.InlineScript = true;
objScriptManager.Services.Add(objServiceReference);
}
在模組載入時,會同時register webservices funcation,即可在javascript用namespace的方式取用webservices function,如下列方式使用:
<script language="javascript">
jQuery(document).ready(function(){
//無參數
Crab.WS.UserService.getName(function(userName){
alert(userName);
});
//兩個參數
Crab.WS.UserService.NameEquals("Crab", "Max", funcation(IsEqual){
alert(IsEqual);
});
});
});
</script>
同系列文章:
Part.1 成功使用jQuery
Part.3 完成AJAX功能
1 | DotNetNuke 4.x 使用jQuery, Webservices 實踐ClientAPI.Part.1 成功使用jQuery « Ideamarket
2009/02/09 於 09:28
[...] DotNetNuke 4.x 使用jQuery, Webservices 實踐ClientAPI.Part.2 使用WebServices實踐Client… [...]