or
[{
"AssetClassCode"
:
"XYZ"
,
"AssetClassName"
:
"Domestic Bonds"
,
"Benchmarks"
: [{
"ExtensionData"
:{},
"AssetClassCode"
:
"XYZ"
,
"InvestmentCode"
:
"ABC"
,
"YTD"
: 0.14,
"Year1"
: 0.23,
"Year3"
: 0.21,
"Year5"
: 0.23}]}]
viewModel = kendo.observable({
assetClassesDataSource: dataSource,
save:
function
()
{
console.log(
"saving"
);
},
edit:
function
()
{
console.log(
"edit"
);
},
onBenchmarkChange:
function
(args)
{
args.data.set(
"InvestmentCode "
, args.sender.dataItem().InvestmentCode );
args.data.set(
"Allocation"
, 0);
args.data.set(
"Ytd"
, args.sender.dataItem().Ytd);
args.data.set(
"Year1"
, args.sender.dataItem().Year1);
args.data.set(
"Year3"
, args.sender.dataItem().Year3);
args.data.set(
"Year5"
, args.sender.dataItem().Year5);
console.log(
"done setting"
);
}
...
<
div
data-role
=
"grid"
data-editable
=
"true"
data-bind
=
"source: assetClassesDataSource, events: { save: save, edit: edit, dataBound: dataBound }"
data-columns="[ {'field': 'AssetClassName', 'width': '25%', 'title': 'Asset Class'},
{'field': 'InvestmentCode', 'width': 190, 'title': 'Investment Code'},
{'field': 'InvestmentName', 'width': '25%', 'title': 'Investment'},
{'field': 'Allocation', 'width': 75, headerAttributes: { 'class': 'text-right'}, groupFooterTemplate: '#: sum #%', footerTemplate: '# if(data.Allocation) { if (sum > 100) {# <
span
class=\'message-error\'>#= sum #%</
span
> #} else {# <
span
class=\'\'>#= sum #%</
span
> #} } else {# 0 #}#'},
{'field': 'Ytd', 'width': 75, 'title': 'YTD', headerAttributes: { 'class': 'text-right'}},
{'field': 'Year1', 'width': 75, 'title': '1 Year', headerAttributes: { 'class': 'text-right'}},
{'field': 'Year3', 'width': 75, 'title': '3 Year', headerAttributes: { 'class': 'text-right'}},
{'field': 'Year5', 'width': 75, 'title': '5 Year', headerAttributes: { 'class': 'text-right'}}]"
data-row-template="row-template">
</
div
>
<
script
id
=
"row-template"
type
=
"text/x-kendo-template"
>
<
tr
>
<
td
></
td
>
<
td
data-bind
=
"text: AssetClassName"
>
</
td
>
<
td
data-bind
=
"text: BenchmarkCode"
>
</
td
>
<
td
>
<
input
data-role
=
"dropdownlist"
data-text-field
=
"InvestmentName"
data-value-field
=
"InvestmentCode"
data-bind
=
"{source: Benchmarks, events: {change: onBenchmarkChange, dataBound: onBenchmarksDataBound}}"
data-value-primitive
=
"true"
/>
</
td
>
<
td
class
=
"text-right"
>
<
input
class
=
"editable"
data-role
=
"numerictextbox"
data-format
=
"N0"
data-bind
=
"{value: Allocation}"
data-min
=
"0"
data-max
=
"100"
/>
</
td
>
<
td
class
=
"text-right"
>
#: kendo.toString(get("Ytd"), "P") #
</
td
>
<
td
class
=
"text-right"
>
#: kendo.toString(get("Year1"), "P") #
</
td
>
<
td
class
=
"text-right"
>
#: kendo.toString(get("Year3"), "P") #
</
td
>
<
td
class
=
"text-right"
>
#: kendo.toString(get("Year5"), "P") #
</
td
>
</
tr
>
</
script
>
[AutoMapperConfigurationActionFilter(
typeof
(OrderDomainMvcProfile))]
[NHibernateSession]
public
virtual
ActionResult OrderGrid_Select([DataSourceRequest]DataSourceRequest request)
{
var filterSpecification = KendoToSpecificationHelper.Filter<OrderDomainEntities.Order>(request.Filters);
var sortSpecificationList = KendoToSpecificationHelper.OrderSort(request.Groups, request.Sorts);
var groupSpecification = KendoToSpecificationHelper.OrderGroup(request.Groups);
public
OrderContract[] ListSpecifiedOrders([DataSourceRequest]DataSourceRequest request)
{
_ContextHelper.SetCurrentWebOperationContext();
if
(_ContextHelper.AssertContextIsNull())
return
null
;
try
{
var filterSpecification = KendoToSpecificationHelper.Filter<Order>(request.Filters);
var sortSpecificationList = KendoToSpecificationHelper.OrderSort(request.Groups, request.Sorts);
var groupSpecification = KendoToSpecificationHelper.OrderGroup(request.Groups);
01.
jQuery(ORDER_GRID_ID).kendoGrid({
02.
// below js code to render control....
03.
// ..............
04.
"dataSource"
: {
05.
"transport"
: {
06.
"read"
:
function
(options) {
07.
getOrders(options);
08.
},
09.
},
10.
"schema"
: {
11.
"groups"
: [{
12.
"field"
:
"number"
13.
}],
14.
"data"
:
"data"
,
15.
"total"
:
"total"
16.
},
17.
"pageSize"
: 10,
18.
"serverPaging"
:
true
,
19.
"serverSorting"
:
true
,
20.
"serverFiltering"
:
true
,
21.
//"serverGrouping": true,
22.
"serverAggregates"
:
true
,
23.
"error"
: listOrdersView.OrderGrid_Error
24.
}
25.
}