How do you specify the default sort order of rows/columns in a PivotGrid?
My controller has this method
public IActionResult PivotGrid()
{
IEnumerable<ResponseReportPivot> objResponseList = _db.ResponseReportPivot;
var sortedResponseList = objResponseList.OrderBy(s => s.EventYear).ThenBy(s => s.Venue);
return View(sortedResponseList);
}
When I run the pivot I get the display in Pivot Display.jpg attached.
If I change the OrderBy clauses, I get the display in Pivot display 2.jpg.
I know the user can change the sort but I want the column display to default to be Event Year ascending and the row display to default to Venue ascending.
I haven't seen anywhere how that can be accomplished.
Here's the pivot grid code
@*For local binding*@
@using Application.Models;
@using Kendo.Mvc.Extensions;
@using Kendo.Mvc.UI;
@model IEnumerable<ResponseReportPivot>
@{
ViewBag.Title = "Response Report Pivot Grid";
}
@Html.AntiForgeryToken()
<style>
.k-pivot-table .k-grid-content td {
text-align: left;
}
</style>
<div class="k-pivotgrid-wrapper">
@(Html.Kendo().PivotConfigurator()
.Name("configurator")
.HtmlAttributes(new { @class = "hidden-on-narrow" })
.Filterable(true)
.Sortable(true)
.Height(570)
)
@(Html.Kendo().PivotGrid<ResponseReportPivot>()
.Name("pivotgrid")
.Configurator("#configurator")
.ColumnWidth(120)
.Filterable(true)
.Height(570)
.Sortable(true)
.BindTo(Model)
.DataSource(dataSource => dataSource
.Ajax()
.Schema(schema => schema
.Cube(cube => cube
.Dimensions(dimensions =>
{
dimensions.Add(model => model.Venue).Caption("All Venues");
dimensions.Add(model => model.EventYear).Caption("All Years");
})
.Measures(measures =>
{
measures.Add("Count").Field(model => model.Venue).AggregateName("count");
})
))
.Columns(columns =>
{
columns.Add("EventYear").Expand(true);
})
.Rows(rows => rows.Add("Venue").Expand(true))
.Measures(measures => measures.Values("Count"))
.Events(e => e.Error("onError"))
)
)
</div>
<div class="responsive-message"></div>
<script>
function onError(e) {
alert("error: " + kendo.stringify(e.errors[0]));
}
</script>