|
<div id="Grid"></div>
<script type="text/javascript">
$(function () {
$("#Grid").ejGrid({
. .
. . .
summaryRows: [
{ title: "Currency",
summaryColumns: [
{ summaryType: ej.Grid.SummaryType.Custom,
customSummaryValue: currency,
displayColumn: "Freight", format: "{0:C2}" }
]
}
. . .
],
});
});
function currency() {
var gridObj = $("#Grid").ejGrid("instance")
var rs=ej.sum(gridObj.model.currentViewData, "Freight")
var dol = 0.017
return (rs * dol);
}
</script> |
| Client side: <script type="text/javascript"> $(function () { var customadaptor = new ej.WebApiAdaptor().extend({ processResponse: function (data, ds, query, xhr, request, changes) { var resultdata = data, pvt = request && request.ejPvtData;; var result = this.base.processResponse.apply(this, [data, ds, query, xhr, request, changes]); if (pvt && pvt.aggregates && pvt.aggregates.length) { var agg = pvt.aggregates, args = {}, fn, res = {}; for (var i = 0; i < agg.length; i++) { fn = ej.aggregates[agg[i].type]; if (fn) res[agg[i].field + " - " + agg[i].type] = fn(resultdata.aggregate, agg[i].field); } result.aggregates = res; } return result; } }); $("#Grid").ejGrid({ dataSource: ej.DataManager({ url: "/api/Values", adaptor: new customadaptor() }), . . . . . . allowPaging: true, showSummary: true, actionBegin: function(args){ var agg = this.model.query.queries.filter(function (e) { return e.fn === "onAggregates" }); var aggregate = []; for (var s = 0; s < agg.length; s++) { aggregate.push(agg[s].e.field); }; this.model.dataSource.dataSource.headers = []; this.model.dataSource.dataSource.headers.push({ aggregates: JSON.stringify(aggregate) }); }, }); }); </script> Server Side: public object Get() { if (order.Count == 0) bindData(); List<Orders> data = order; DataOperations ds = new DataOperations(); string agg = Request.Headers.GetValues("aggregates").ToList()[0]; List<string> aggregates = (List<string>)JsonConvert.DeserializeObject(agg, typeof(List<string>)); List<string> str = new List<string>(); IEnumerable aggregate = ds.PerformSelect(order, aggregates); return new { Items = data.Skip(skip).Take(take), Count = order.Count(), aggregate = aggregate }; } |