Today at my work, I need to implement JQuery in SharePoint on a module. I
need to make AJAX calls to get the data from the database depending on the value
in a text box. So, I choose JQuery, because I know it well and it will take very
less time to implement. But for JQuery I need to create page web methods. But
SharePoint doesn't support Page web methods because SharePoint is completely
built upon ASP.NET 2.0.
So, what is the solution, how can I make a call to the server and get the
data from DB? After thought some time about it, finally I got a brilliant and
better idea of using web services. Please follow the steps below to implement
Web services in SharePoint.
- We are using client side technologies like JQuery etc to call Web service to
get the data from server. By default, it is not supported. For that, we need the
supporting DLL's[System.Web.Script.Services] for the Web service
script on the SharePoint server. These DLL's are needed to process the web
service request and send the response[JSON]. For those DLL, you need to install
the Ajax extensions 1.0.
- Create a web service using Visual studio. It will generate
two files webservice.asmx and webservice.cs. Write all the web methods required
inside the webservice.cs file. I will explain you with an example more detail
later in this post. - Now, we need a location to keep our *.cs [webservice.cs] file. So, for that,
create App_Code folder in the SharePoint site file system
virtual directory root [c:\inetpub\…\wss\virtualdirectories\portnumber]. You can
find the advantages of using App_code folder, in SharePoint web application App_Code folder in SharePoint – Custom web services in SharePoint – Part 1.
- By default SharePoint won't allow the script handlers and http modules. For
this reasons, we need to make the web.config changes as
explained Web.config changes - Custom web services in SharePoint 2007 – Part 2.
- Change the settings in central admin to remove asmx extension from blocked
file types. Blocked file types in SharePoint 2007 – Custom web services 2.0 in SharePoint 2007 – Part 3.
After you are ready with all the above steps, then please follow the steps
below.
- Check the related dll's are added in the system, after installed Ajax
extensions. Below are the namespaces you required in the webservice.cs file.
using System.Web.Services;
using
System.Web.Script.Services; - Copy the webservice.asmx file to the SharePoint website virtual directory
file system path [c:\inetpub\…\wss\virtualdirectories\portnumber\].
- Copy the file webservice.cs file, and paste it in the app_code folder of the
SharePoint web site. - Please follow the post web.config changes as explained.
- Central administration changes as explained above.
There we are done with the process. This is really working great and we can
solve really very difficult problems like all scenarios where we need to
communicate with DB without doing post back etc. This is very smooth and fast
way of retrieving results. I like to hear feedback. This is the one of the best
solutions I found. Please post any problems if you face while implementing this
process.