using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Web; using YanZhiwei.DotNet.NPOI2.Utilities; using YanZhiwei.DotNet2.Utilities.Collection; using YanZhiwei.DotNet2.Utilities.Common; using YanZhiwei.DotNet2.Utilities.DataOperator; using YanZhiwei.DotNet2.Utilities.Enum; using YanZhiwei.DotNet2.Utilities.Model; using YanZhiwei.DotNet3._5.Utilities.Common; using YanZhiwei.DotNet3._5.Utilities.Mapper; using YanZhiwei.DotNet3._5.Utilities.Model; using YanZhiwei.DotNet3._5.Utilities.WebForm; using YanZhiwei.DotNet3._5.Utilities.WebForm.JqueryPlugin; using YanZhiwei.JavaScript.Utilities.Model; namespace YanZhiwei.JavaScript.Utilities.BackHandler { /// /// Summary description for BaseHandler /// public class BaseHandler : IHttpHandler { public static IEnumerable GetPersons() { for(int i = 0; i < 57; i++) { yield return new Person { Id = i, Name = "name " + i }; } } public void ProcessRequest(HttpContext context) { string _actionType = context.Request.Params["action"].ToStringOrDefault("UnKown"); if(_actionType.CompareIgnoreCase("getLocationList")) { int _pageIndex = context.Request.Params["PageIndex"].ToInt32OrDefault(1), _pageSize = context.Request.Params["PageSize"].ToInt32OrDefault(10); SqlServerDataOperator _helper = new SqlServerDataOperator(@"Server=YANZHIWEI-IT-PC\SQLEXPRESS;database=Northwind;user id=sa;Password=sasa"); PagedList _pageResult = _helper.ExecutePageQuery("[Orders]", "*", "OrderID", OrderType.Desc, string.Empty, _pageSize, _pageIndex); AjaxResult _result = new AjaxResult(string.Empty, AjaxResultType.Success, _pageResult); string _json = SerializeHelper.JsonSerialize(new JsonPagedList(_pageResult)).ParseJsonDateTime(); context.Response.Write(_json); } else if(_actionType.CompareIgnoreCase("exportLocationExcel")) { SqlServerDataOperator _helper = new SqlServerDataOperator(@"Server=YANZHIWEI-IT-PC\SQLEXPRESS;database=JooWMS;user id=sa;Password=sasa"); PagedList _pageResult = _helper.ExecutePageQuery("[Location]", "*", "ID", OrderType.Desc, string.Empty, 10, 1); DataTable _result = GeneralMapper.ToDataTable(_pageResult, new string[4] { "LocalNum", "LocalBarCode", "LocalName", "StorageNum" }); string _filePath = context.Server.MapPath("~/UploadFiles/"); if(!Directory.Exists(_filePath)) { Directory.CreateDirectory(_filePath); } string _filename = string.Format("库位管理{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss")); NPOIExcel.ToExcel(_result, "库位管理", "库位", Path.Combine(_filePath, _filename)); context.CreateResponse(("/UploadFiles/" + _filename).Escape(), AjaxResultType.Success, string.Empty); } else { context.ExecutePageQuery((pageLength, pageIndex, orderIndex, orderBy) => { var persons = GetPersons(); Func order = p => { if(orderIndex == 0) { return p.Id; } return p.Name; }; if("desc" == orderBy) { persons = persons.OrderByDescending(order); } else { persons = persons.OrderBy(order); } //错误测试 //DataTablePageResult result = new DataTablePageResult(); //result.ExecuteMessage = "测试错误"; //result.ExecuteState = HttpStatusCode.BadGateway; //正确测试 DataTablePageResult result = new DataTablePageResult(); result.iTotalDisplayRecords = persons.Count(); List _personList = new List(); result.iTotalRecords = persons.Count(); result.aaData = persons.Skip(pageIndex).Take(pageLength); result.ExecuteState = HttpStatusCode.OK; return result; }); // // Those parameters are sent by the plugin // var iDisplayLength = int.Parse(context.Request["iDisplayLength"]); // var iDisplayStart = int.Parse(context.Request["iDisplayStart"]); // var iSortCol = int.Parse(context.Request["iSortCol_0"]); // var iSortDir = context.Request["sSortDir_0"]; // // Fetch the data from a repository (in my case in-memory) // var persons = GetPersons(); // // Define an order function based on the iSortCol parameter // Func order = p => // { // if (iSortCol == 0) // { // return p.Id; // } // return p.Name; // }; // // Define the order direction based on the iSortDir parameter // if ("desc" == iSortDir) // { // persons = persons.OrderByDescending(order); // } // else // { // persons = persons.OrderBy(order); // } // // prepare an anonymous object for JSON serialization // var result = new // { // iTotalRecords = persons.Count(), // iTotalDisplayRecords = persons.Count(), // aaData = persons // .Skip(iDisplayStart) // .Take(iDisplayLength) // }; // //var serializer = new JavaScriptSerializer(); //// var json = SerializationHelper.JsonSerialize(result);// serializer.Serialize(result); // context.CreateResponse(result, System.Net.HttpStatusCode.OK); // //context.Response.ContentType = "application/json"; // //context.Response.Write(json); } } public bool IsReusable { get { return false; } } } }