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; width: 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>

 

 

 

posted on 2011-12-13 20:13  gzh4455  阅读(416)  评论(0编辑  收藏  举报