【问题标题】:Kendo UI Grid - Update to send entire list when inline editingKendo UI Grid - 在内联编辑时更新以发送整个列表
【发布时间】:2018-01-26 14:48:30
【问题描述】:

是否可以使用 Kendo UI Grid 将所有已更改行的列表或网格中包含的所有行的列表一次发送回服务器?因为在行内编辑模式下,当您保存时,_Update 事件将针对网格中更改的每个元素触发。问题是,我一次需要所有这些。这是我的代码:

@(Html.Kendo().Grid<StrategyParameterModel>()
    .Name("strategyParameters")
    .Columns(columns =>
    {
      columns.Bound(c => c.Id).Width(170);
      columns.ForeignKey(p => p.ParamType, (System.Collections.IEnumerable)ViewData["paramTypes"], "Key", "Value").Title("Param Type").Width(200);
      columns.Bound(c => c.Key);
      columns.Bound(c => c.Value);
      columns.Bound(c => c.MinimumValue);
      columns.Bound(c => c.MaximumValue);
      columns.Bound(c => c.IncrementalValue);
    })
     .ToolBar(toolbar =>
     {
       toolbar.Create();
       toolbar.Save();
     })
    //.ColumnMenu()
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Pageable(pager =>
        pager.Refresh(true)
    )
    .Navigatable()
    .Resizable(resize => resize.Columns(true))
    .Sortable(sortable =>
    {
      sortable.SortMode(GridSortMode.SingleColumn);
      sortable.AllowUnsort(false);
    })
    .Filterable(filterable => filterable.Mode(GridFilterMode.Menu))
    .Scrollable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(100)
        .Model(model =>
        {
          model.Id(p => p.Id);
          model.Field(p => p.Id).Editable(false);
        })
        .Read(read => read.Action("StrategyParameter_Read", "StrategySets").Data("getStrategySetId"))
        .Update(update => update.Action("StrategyParameter_Update", "StrategySets").Data("getStrategySetId"))

        .Sort(sort => sort.Add("Id").Descending())
    )
    .Deferred()
)

控制器:

    public ActionResult StrategyParameter_Update([DataSourceRequest]DataSourceRequest request, StrategyParameterModel parameters, int? strategySetId)
    {
        // parameters is one line only, should be a list of all lines...
        var result = string.Empty;
        return Json(result);
    }

【问题讨论】:

    标签: javascript c# jquery kendo-ui kendo-grid


    【解决方案1】:

    我敢打赌,这可能就像在数据源上启用批量编辑模式一样简单。

    .DataSource(dataSource => dataSource        
        ...     
        .Batch(true)
        ...
    )
    

    【讨论】:

    • 工作,考虑到您必须将控制器中的参数更改为:Bind(Prefix = "models")]IEnumerable&lt;StrategyParameterModel&gt; parameters
    • 噢!是的,你的控制器也必须知道期待一个列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多