码迷,mamicode.com
首页 > Web开发 > 详细

Create and Call HttpHandler in SharePoint

时间:2017-05-21 16:06:40      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:mic   roc   ash   sts   ice   size   url   meta   enter   

Create and Call HttpHandler in SharePoint

Requirement:

1. Create a httphandler, and reture json data when call the httphandler in client.

2. Create a list named "Products", including a column named "FeaturedProduct" which of type is Boolean and the column named "ProductCategory" which of type is metadata

3. In server, return the json that the value of the field named "FeaturedProduct" is Yes.

4. In client, get the json data with the url

 

Here is the steps:

1. Create sharepoint project and httphandler class

according the steps

2. Here is the code to create httphandler class in vs(using System.Web.Extentions), then deploy.

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web;
using System.Web.Script.Serialization;
using Microsoft.SharePoint.Taxonomy;
using System.Collections.Generic;
namespace Testashx
{
    public partial class Test : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }
        //http://webUrl/_layouts/15/handler/Test.ashx?featuredProduct=1
        public void ProcessRequest(HttpContext context)
        {
           
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
            context.Response.ContentType = "application/json";
            int featured = int.Parse(context.Request.QueryString.Get("featuredProduct"));
            List<Product> jsonResult = new List<Product>();
            string caml = string.Empty;
            try
            {
                SPContext currentContext = SPContext.Current;
                SPWeb web = SPContext.Current.Web;
                SPList list = web.Lists["Products"];
                caml = "<Where>"+
                             "<Eq>"+
                              " <FieldRef Name=‘FeaturedProduct‘ /> "+
                               "<Value Type=‘Boolean‘>" + featured + "</Value>" +
                            "</Eq>"+
                      "</Where>";
                
                SPQuery query = new SPQuery();
                query.Query = caml;
                //query.ViewFields = "<ViewFields><FieldRef Name=‘ProductCategory‘/><FieldRef Name=‘Size‘/></ViewFields>";
                SPListItemCollection items = list.GetItems(query);
                foreach (SPListItem item in items)
                {
                    Product product = new Product();
                    if (item["ProductCategory"] as TaxonomyFieldValueCollection != null)
                    {
                        TaxonomyFieldValueCollection taxonomyFieldValueCollection = item["ProductCategory"] as TaxonomyFieldValueCollection;
                        if (taxonomyFieldValueCollection.Count > 0)
                        {
                            product.ProductCategory = taxonomyFieldValueCollection[0].Label;
                        }
                    }
                    product.Size = item["Size"].ToString();
                    jsonResult.Add(product);
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.Message);
            }

            context.Response.Write(jsonSerializer.Serialize(jsonResult));
        }
    }
    class Product
    {
        public string ProductCategory { get; set; }
        public string Size { get; set; }
    }
}

 

3. In client, here is the code for call service

   $.ajax({
        url: "http://webUrl/_layouts/15/handler/Test.ashx?

featuredProduct=0", type: "get", dataType:"json", success: function (data) { var html = ""; $.each(data, function (index, key) { html += "<div>" + key.ProductCategory + "</div>"; html += "<div>" + key.Size + "</div>"; }); $("#myDiv").append(html) ; } });

Note: "featuredProduct=0" is Variable

 

 

 

 

Create and Call HttpHandler in SharePoint

标签:mic   roc   ash   sts   ice   size   url   meta   enter   

原文地址:http://www.cnblogs.com/gavanwanggw/p/6884956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!