or
I'm having a problem trying to set the Grid's datasource after the grid has been created. Here is what I currently have, I've tried a bunch of diffenent vatiations of it, but none have worked. I can see from the Dev Tools in IE9 that its making the service call.
$(document).ready(
function
() {
grid = $(
"#grid"
).kendoGrid({
dataSource: {
pageSize: 10
},
height: 800,
scrollable:
true
,
sortable:
true
,
filterable:
true
,
pageable: {
input:
true
,
numeric:
false
},
columns: [
{
field:
"UnitId"
,
title:
"ID"
},
{
field:
"UnitName"
,
title:
"Name"
,
width: 200
},
{
field:
"Location"
,
width: 200
},
{
field:
"Number"
,
title:
"Number"
},
{
field:
"Rating"
},
{
field:
"Date"
,
title:
"Date"
}
]
});
setDataSource()
});
function
setDataSource() {
//check if the data is in the db
var
dataSource =
new
kendo.data.DataSource({
type:
"json"
,
transport: {
read: {
complete:
function
(e){ debugger; $(
"#grid"
).data(
"kendoGrid"
).dataSource.data(e); $(
"#grid"
).data(
"kendoGrid"
).dataSource.read();}
}
},
schema: {
model: {
fields: {
UnitId: { type:
"string"
},
UnitName: { type:
"string"
},
Location: { type:
"string"
},
Number: { type:
"string"
},
Rating: { type:
"string"
},
Assessed: { type:
"date"
}
}
}
},
});
}
contentUrl
: Boolean(default: true)
HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
//Other CRUD omitted for brevity
[HttpPost]
public ActionResult CreateProducts([DataSourceRequest]DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<
Models.ItemModel
> itemsToAdd)
{
Models.ShipmentModel shipmentModel = SessionModel;
foreach (Models.ItemModel newItem in itemsToAdd)
{
if (shipmentModel.ItemModelList.Count > 0)
{
var nextID = (from i in shipmentModel.ItemModelList
select i.ItemID).Max() + 1;
newItem.ItemID = nextID;
}
shipmentModel.ItemModelList.Add(newItem);
}
var items = shipmentModel.ItemModelList;
DataSourceResult result = items.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
<
div
id
=
"ShipmentForm"
>
@(Html.Kendo().Grid<
KendoUITestEnvironment.Models.ItemModel
>()
.Name("QuoteItemGrid")
.Columns(columns =>
{
columns.Bound(i => i.FreightClass).Width(50);
columns.Bound(i => i.Length).Width(50);
columns.Bound(i => i.Width).Width(50);
columns.Bound(i => i.Height).Width(50);
columns.Bound(i => i.DimensionUnitOfMeasure).Width(50);
columns.Bound(i => i.QuantityValue).Width(50);
columns.Bound(i => i.QuantityUnitOfMeasure).Width(50);
columns.Bound(i => i.Weight).Width(50);
columns.Bound(i => i.WeightUnitOfMeasure).Width(50);
columns.Bound(i => i.NmfcCode).Width(50);
columns.Bound(i => i.ItemDescription).Width(50);
columns.Command(command => command.Destroy()).Width(110);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("QuoteItemGrid_ErrorHandler"))
.Model(model =>
{
model.Id(i => i.ItemID);
model.Field(i => i.FreightClass);
})
.Create(create => create.Action("CreateProducts", "Home"))
.Read(read => read.Action("GetProducts", "Home"))
.Update(update => update.Action("UpdateProducts", "Home"))
.Destroy(destroy => destroy.Action("DeleteProducts", "Home"))
)
)
</
div
>
<
span
class
=
"k-select"
>
<
span
unselectable
=
"on"
class
=
"k-link"
>
<
span
unselectable
=
"on"
class
=
"k-icon k-i-arrow-n"
title
=
"Increase value"
>Increase value</
span
>
</
span
>
<
span
unselectable
=
"on"
class
=
"k-link"
>
<
span
unselectable
=
"on"
class
=
"k-icon k-i-arrow-s"
title
=
"Decrease value"
>Decrease value</
span
>
</
span
>
</
span
>