This repository has been archived by the owner on Dec 29, 2023. It is now read-only.
/
HomeController.cs
70 lines (62 loc) · 2.83 KB
/
HomeController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using DevExpress.Web.Mvc;
using DevExpress.XtraPivotGrid;
using MPG_ExportMenu.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MPG_ExportMenu.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[ValidateInput(false)]
public ActionResult PivotGridPartial() {
ViewBag.PivotSettings = CreatePivotGridSettings();
return PartialView("_PivotGridPartial", NwindModel.GetInvoices());
}
public ActionResult ExportTo(string exportCommand) {
var settings = CreatePivotGridSettings();
var data = NwindModel.GetInvoices();
switch (exportCommand) {
case "XlsWysiwyg":
return PivotGridExtension.ExportToXls(settings,data,
new DevExpress.Web.ASPxPivotGrid.PivotXlsExportOptions() { ExportType = DevExpress.Export.ExportType.WYSIWYG } );
case "XlsDataAware":
return PivotGridExtension.ExportToXls(settings, data);
case "XlsxWysiwyg":
return PivotGridExtension.ExportToXlsx(settings, data,
new DevExpress.Web.ASPxPivotGrid.PivotXlsxExportOptions() { ExportType = DevExpress.Export.ExportType.WYSIWYG });
case "XlsxDataAware":
return PivotGridExtension.ExportToXlsx(settings, data);
case "Csv":
return PivotGridExtension.ExportToCsv(settings, data);
case "Pdf":
return PivotGridExtension.ExportToPdf(settings, data);
case "Rtf":
return PivotGridExtension.ExportToRtf(settings, data);
}
return new EmptyResult();
}
private static PivotGridSettings CreatePivotGridSettings() {
PivotGridSettings settings = new PivotGridSettings();
settings.Name = "pivotGrid";
settings.CallbackRouteValues = new { Controller = "Home", Action = "PivotGridPartial" };
settings.OptionsView.HorizontalScrollBarMode = DevExpress.Web.ScrollBarMode.Auto;
settings.OptionsData.AutoExpandGroups = DevExpress.Utils.DefaultBoolean.False;
settings.Width = new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage);
settings.Fields.Add("Country", PivotArea.ColumnArea);
settings.Fields.Add("City", PivotArea.ColumnArea);
settings.Fields.Add(field => {
field.Area = PivotArea.DataArea;
field.FieldName = "ExtendedPrice";
});
settings.Fields.Add("ProductName", PivotArea.RowArea);
return settings;
}
}
}