在我的应用程序中,我使用的是Kendo网格,我的代码如下。
@(Html.Kendo().Grid<nVisionGlobal.Application.Pricing.Models.FuelIndex>()
.Name("FuelGrid")
.Columns(columns =>
{
columns.Bound(p => p.FSCIndexID).Width(50).Sortable(false).ClientTemplate("<input class='check_row' type='checkbox' data-clno = #= FSCIndexID # ></input>")
.HeaderTemplate("<input id='check_all' type='checkbox' > </input>");
columns.Bound(p => p.EffectiveDate).Title("Effective From").Format("{0:dd-MMM-yyyy}").Width(150);
columns.Bound(p => p.NationalUsAvg).Title("US Average");
columns.Bound(p => p.EastCoast).Title("East Coast");
columns.Bound(p => p.NewEngland).Title("New England");
columns.Bound(p => p.CentralAtlantic).Title("Central Atlantic");
columns.Bound(p => p.LowerAtlantic).Title("Lower Atlantic");
columns.Bound(p => p.Midwest).Title("Midwest");
columns.Bound(p => p.GulfCoast).Title("Gulf Coast");
columns.Bound(p => p.RockyMtn).Title("Rocky Mountain");
columns.Bound(p => p.WestCoast).Title("West Coast");
columns.Bound(p => p.California).Title("California");
columns.Command(commands =>
{
commands.Destroy();
}).Title("Commands").Width(200);
})
.AutoBind(false)
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Navigatable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.Model(model =>
{
model.Id(m => m.FSCIndexID);
model.Field(m => m.FSCIndexID).Editable(false);
model.Field(m => m.EffectiveDate).Editable(true);
})
.Create(create => create.Action("Inline_Create", "Fuel"))
.Read(p => p.Action("FuelSearch", "Fuel").Type(HttpVerbs.Get).Data("FuelSearchInfo"))
.Update("Inline_Update", "Fuel")
.Destroy(destroy => destroy.Action("#", "Fuel"))
)
.Pageable()
)
从上面的代码可以看出,单元格是可编辑的(GridEditMode.InCell)。我有一个按钮控件来保存数据。当我单击按钮时,只有行中的编辑数据(多行编辑)将传递给控制器。
我已经编写了以下jQuery来捕获已编辑的行。
<script>
if ($(this).attr("href") === "Save" || $(this).attr("href") === "Update") {
//alert('Ok')
e.preventDefault();
debugger;
$.ajax({
url: "Inline_Create/Fuel",
cache: false,
type: "POST",
contentType: "application/json",
// charset='utf-8',
data: JSON.stringify($("#FuelGrid").data("kendoGrid").dataSource.select())
});
</script>
但代码无效。