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>