zoukankan      html  css  js  c++  java
  • IHttpHandler 在SharePoint中的应用

    1. 一个文件名为VCChartHandler.ashx,其文件代码为:

    <%@ WebHandler Language="C#"  Class="VCSharePoint.BL.VCHandler,VCSharePoint, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=0134fd28ed40d3b2"%>
    

     2. 另一个类为VCHandler.cs的文件,其后台代码为:

    using System;
    using System.Data;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    
    
    namespace VCSharePoint.BL
    {
      public class VCHandler:IHttpHandler
        {
            #region IHttpHandler Members
    
            public bool IsReusable
            {
                get { return false; }
            }
            public void ProcessRequest(HttpContext context)
            {  
    
                context.Response.Clear();
                string yearValue = context.Request["Year"] == null ? DateTime.Today.Year.ToString() : context.Request["Year"].ToString();
                string monthValue = context.Request["Month"] == null ? UNITS.GetCurrMonth : context.Request["Month"].ToString();
                string data = string.Empty;
                data = JSONConverter.GetJSONData(GetRankingTable(yearValue, monthValue));
                context.Response.ContentType = "application/json";
                context.Response.ContentEncoding = Encoding.UTF8;
                if (data.Length == 0)
                    data = "{\"NoResult\": \"this is no result\"}";   
                 context.Response.Write(data);
            }
            private DataTable GetRankingTable(string yearValue,string monthValue)
            {
                BL.BLCalculate BlCinstance = new BLCalculate(yearValue, monthValue);
                return BlCinstance.GetDataCalc();
            }
    
            #endregion
        }
    }
    
    

     3.  有一个显示文件网页文件为VC Ranking Chart.aspx, 其后台代码为:其引用了一个jQuery库

    <%@ Page language="C#" MasterPageFile="~masterurl/default.master"    Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register TagPrefix="QueryControl" TagName="QueryControls" src="~/_controltemplates/QueryControls.ascx"%>
    <asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
    	Volunteer Challenge Result
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageImage" runat="server"><IMG SRC="/_layouts/images/blank.gif" width=1 height=1 alt=""></asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
    	<WebPartPages:WebPartZone runat="server" Title="loc:TitleBar" ID="TitleBar" AllowLayoutChange="false" AllowPersonalization="false"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone>
    </asp:Content>
    <asp:Content ID="Content4" ContentPlaceHolderId="PlaceHolderTitleBreadcrumb" runat="server"/>
    <asp:Content ID="Content5" ContentPlaceHolderId="PlaceHolderTitleAreaClass" runat="server">
    <style type="text/css">
    TD.ms-titleareaframe, .ms-pagetitleareaframe {
    	height: 10px;
    }
    Div.ms-titleareaframe {
    	height: 100%;
    }
    .ms-pagetitleareaframe table {
    	background: none;
    	height: 10px;
    }
    </style>
    </asp:Content>
    <asp:Content ID="Content6" ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">	
        <!-- JS Module-->
        <script type="text/javascript" src="/_layouts/VCCharts/jquery-1.5.2.min.js"> </script>
        <script type="text/javascript" src="/_layouts/VCCharts/highcharts.js"> </script>
        <script type="text/javascript" src="/_layouts/VCCharts/exporting.js"></script>
         <!-- End JS Module-->
         
         <script  type="text/javascript">
        $(function(){                    
           InitalQuery();
           MonthChangeBind(); 
        });
    	  
    	  function InitalQuery()
    	  {
    	      var year = $("select[id$='ddlYears']").val();
    	      var month = $("select[id$='ddlMonths']").val();
    	      var relUrl = $("input[id$='relWebURL']").val();
    	      var currentD=new Date();
    	      var currentY=currentD.getFullYear();
    	      
    	      if(currentY==year)
    	       $("#reminder").css("display","block");
    	      else
    	          $("#reminder").css("display","none");
    
    	      generateCharts(relUrl,year,month);
    	      
    	  }
    	  function MonthChangeBind()
    	  {
    	     $("select[id$='ddlMonths']").change(function()
    	     {
    	        InitalQuery();
    	     });
    	  }
    	  
    	  function generateCharts(webUrl,curYear,curMonth){
          	 $.ajax({
          	        url: webUrl+"/_layouts/VCCharts/VCChartHandler.ashx", 	
          	        type: "POST",
                    data: {Year: curYear, Month: curMonth},
                    beforeSend: loading,
                    success: function(json) {
                        $.each(json,function(key,data){                    
                         if(key =="NoResult")
                         {
                            $("#container").html("<span style='color:red;margin-top:100px; margin-left:200px'>" + data +"</span>");
                         }
                         else
                         {
    			                var jsonData=[];
    			                var jsonCategories=[];
    				            $.each(data,function (key1,data1){	
    	                	 	     jsonCategories.push(data1.OfficeName);
    	               		         jsonData.push(data1.Ranking);
            	          
    	             	        });
        	             	    
    	                        //----------Draw Chart----
    				            var chart;
    				            chart = new Highcharts.Chart({
    				            chart: {
    					            renderTo: 'container',
    					            defaultSeriesType: 'bar'
    				            },
    				            title: {
    						            text: 'Office Ranking for the Volunteer Challenge'
    					            },
    				            xAxis: {
    					            //categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas','Dalles','New York']
    					            categories: jsonCategories
    				            },
    				            yAxis: {
    					            min: 0,
    					            title: {
    						            text: ''
    					            }
    				            },
    				            legend: {
    					            backgroundColor: '#FFFFFF',
    					            reversed: true
    				            },
    				            tooltip: {
    					            formatter: function() {
    						            return ''+
    							             this.series.name +': '+ this.y +'';
    					            }
    				            },
    				            plotOptions: {
    					            series: {
    						            stacking: 'normal'
    					            }
    				            },
    			                    series: [{
    			                    name: 'Ranking',
    					            //data: [5, 3, 4, 7, 2,3,0.5]
    					            data: jsonData
    				            }]
    			            });    				
    			            //--------------End Draw---------------//
    			       }
    		      });   
                 },
    		error: function(res) { 
    			
    			 $("#container").html("<div style='color:red'>There are errors:  "+res+",   Please contact system administrator <div>");
    		
    		},
    		complete: function() {  }
             });
            } 
    
          //loading function.
    	function loading() {
    	    $("#container").html("<div style=\"margin-top:100px; margin-left:300px\"><img src='/CSRS/_layouts/images/ewr133.gif' /> </br>loading...</div>");
    	} 
    	
         </script>     
    	<META Name="CollaborationServer" Content="SharePoint Team Web Site">
    	<script type="text/javascript">
    	var navBarHelpOverrideKey = "wssmain";
    	</script>
    </asp:Content>
    <asp:Content ID="Content7" ContentPlaceHolderId="PlaceHolderSearchArea" runat="server">
    	<SharePoint:DelegateControl ID="DelegateControl1" runat="server"
    		ControlId="SmallSearchInputBox"/>
    </asp:Content>
    <asp:Content ID="Content8" ContentPlaceHolderId="PlaceHolderLeftActions" runat="server">
    </asp:Content>
    <asp:Content ID="Content9" ContentPlaceHolderId="PlaceHolderPageDescription" runat="server"/>
    <asp:Content ID="Content10" ContentPlaceHolderId="PlaceHolderBodyAreaClass" runat="server">
    <style type="text/css">
    .ms-bodyareaframe {
    	padding: 0px;
    }
    
    </style>
    </asp:Content>
    <asp:Content ID="Content11" ContentPlaceHolderId="PlaceHolderMain" runat="server">
    	<table cellspacing="0" border="0" width="100%">
    	  <tr>
    	   <td class="ms-pagebreadcrumb" >
    		<asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>
    	   </td>
    	  </tr>
    	  <tr>
    	   <td class="ms-webpartpagedescription">
    		<SharePoint:ProjectProperty ID="ProjectProperty1" Property="Description" runat="server"/></td>
    	  </tr>
    	  <tr>
    		<td>
    		 <table width="100%" cellpadding=0 cellspacing=0 style="padding: 5px 10px 10px 10px;">
    		  <tr>
    		    <td colspan="2">
    		        <QueryControl:QueryControls id="sQueryControl" runat="server"/>
    		    </td>
        	  </tr> 
    		  <tr>
    		    <td colspan="2">
    		        <div id="container" style="margin-top: 20px; margin-left: 20px;  700px; height: 600px;">
    	            </div>
    	            <div id="reminder" style=" color:Red;  font-size:12px; text-align:center;">Note: Current Month will  not be included in Total Ranking.</div>
    		    </td>
    		    </tr> 
    		  <tr>
    		    <td valign="top" width="100%">
    			   <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Right" Title="loc:Right"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone>
    			    
    		   </td>
    		   <td> </td>
    		  </tr>
    		 </table>
    		</td>
    	  </tr>
    	</table>
    	<input  type="hidden" id="ymTempValue" />
    </asp:Content>
    
  • 相关阅读:
    一个特殊的SQL Server阻塞案例分析
    cannot be run because the QueueReader subsystem failed to load
    ORACLE中关于表的一些特殊查询语句
    ORACLE中如何查找定位表最后DML操作的时间小结
    MySQL慢查询日志释疑总结
    Windows服务器如何查看共享目录信息
    SQL Server Log Shipping学习总结
    连环清洁工之特殊任务--java资源如何关闭?
    花果山第一届猿类分级考试实录--Talk is cheap,Show me the code
    猿类如何捕获少女心--难以琢磨的try-catch
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2286733.html
Copyright © 2011-2022 走看看