Reputation: 31
I have dynamic column in Kendo Grid through dynamic datatable, Everything is fine,
the problem is that, Kendo grid doesn't update the batch changing values in controller. plz look following, kindly help me.
@model System.Data.DataTable
@(Html.Kendo().Grid<dynamic>()
.Name("GridfilterHandler")
.Columns(columns =>
{
foreach (System.Data.DataColumn column in Model.Columns)
{
var c = columns.Bound(column.ColumnName).EditorTemplateName("gridColumn");
if (column.ColumnName == "ShowCheck")
{
columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= ShowCheck ? checked='checked':'' # class='chkbx' />")
.HeaderTemplate("<input type='checkbox' id='masterCheckBox' onclick='checkAll(this)'/>").Width(200);
}
}
columns.Command(cmd => cmd.Edit());
})
.Pageable()
.Sortable()
.ToolBar(toolbar =>
{
toolbar.Save();
})
.Editable(ed => ed.Mode(GridEditMode.InCell))
// .Events(events => events.SaveChanges("onSaveChanges"))
.Filterable()
.Groupable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
foreach (System.Data.DataColumn column in Model.Columns)
{
model.Field(column.ColumnName, column.DataType);
}
})
.Model(model =>
{
var id = Model.PrimaryKey[0].ColumnName;
model.Id(id);
foreach (System.Data.DataColumn column in Model.Columns)
{
model.Field(column.ColumnName, column.DataType);
// var field = model.Field(column.ColumnName, column.DataType);
}
})
.Batch(true)
.Read(read => read.Action("readfilterHandlerGrid", "Customize", new { filterTitle = Request.QueryString["filterTitle"] }))
.Update(update => update.Action("updatefilterHandlerGrid", "Customize"))
)
)
public ActionResult updatefilterHandlerGrid([DataSourceRequest] DataSourceRequest request, IEnumerable<dynamic> items)
{...............
}
public ActionResult updatefilterHandlerGrid([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")] IEnumerable<DataTable> products)
{.......................
}
I have tried above update events, but i get null values.
Upvotes: 1
Views: 1324
Reputation: 11
public ActionResult Update([DataSourceRequest] DataSourceRequest request, FormCollection model)
{
foreach (var key in model.Keys)
{
//Build you update query here
}
Here the Solution
Upvotes: 1