Thanks for the reply, so I've implemented the change you mentioned, and now it seems that when my grid calls read I get back json data, but it doesn't bind correctly to the grid (I get one empty row).
Chrome debugger shows the data coming back, but when I call sender.dataSource.data() in the data bound event of the grid I get one object that has null values for all of my defined model fields, and the following Parameters. Data containing all of my rows, Total, an integer count of all of the rows, and then two null fields Aggregate Results and Errors.
On the server in my controller I am calling .ToDataSourceResult. Is that not supported in a custom datasource? Or do I have to manually map back somehow?
I'm attatching my data source configuration below:
DataSource:
.DataSource(dataSource => dataSource.Custom()
.Group(g => g.Add(c => c.LocationName))
.Batch(
true
)
.ServerAggregates(
false
).ServerFiltering(
false
).ServerGrouping(
false
).ServerPaging(
false
).ServerSorting(
false
)
.PageSize(100)
.Events(e => e.Error(
"errorEvent"
))
.Transport(transport =>
{
transport.Read(read =>
{
read.Action(
"Read"
,
"CustomPriceEntry"
)
.Data(
"priceEntryReadData"
)
.Type(HttpVerbs.Get);
});
transport.Update(update =>
{
update.Action(
"SaveProgress"
,
"CustomPriceEntry"
)
.Data(
"priceEntryReadData"
)
.DataType(
"json"
)
.Type(HttpVerbs.Post);
});
transport.ParameterMap(
"parameterMap"
);
})
.Schema(schema => schema.Model(model =>
{
model.Id(id => id.QuoteConfigurationMappingId);
model.Field(field => field.SupplierCounterPartyName).Editable(
false
);
model.Field(field => field.CarrierCounterPartyName).Editable(
false
);
model.Field(field => field.InternalCounterPartyName).Editable(
false
);
model.Field(field => field.ExternalCounterPartyName).Editable(
false
);
model.Field(field => field.NextEffective).Editable(
false
);
model.Field(field => field.QuoteConfigurationMappingId).Editable(
false
);
model.Field(field => field.LocationName).Editable(
false
);
model.Field(field => field.CommodityName).Editable(
false
);
model.Field(field => field.HasAlert).Editable(
false
);
model.Field(field => field.ProductName).Editable(
false
);
model.Field(field => field.SpreadAmount).Editable(
true
);
model.Field(field => field.IsSpread).Editable(
true
);
model.Field(field => field.TimeZoneId).Editable(
false
);
model.Field(field => field.CurrentCost).Editable(
false
);
model.Field(field => field.LatestDate).Editable(
false
);
model.Field(field => field.ProposedPrice).Editable(
true
);
model.Field(field => field.LatestDailyPostedPrice).Editable(
false
);
model.Field(field => field.LatestDailyAdjustment).Editable(
false
);
model.Field(field => field.LatestDailyPostingTimeString).Editable(
false
);
model.Field(field => field.LatestIntraDayPrice).Editable(
false
);
model.Field(field => field.LatestIntraDayAdjustment).Editable(
false
);
model.Field(field => field.LatestIntraDayPostingTimeString).Editable(
false
);
})
))
Parameter Map Function:
function
parameterMap(data, operation) {
if
(operation ===
"update"
) {
return
JSON.stringify(data);
}
return
data;
}