【问题标题】:Kendo Grid InCell Editing => saveEvent(e) => e.values剑道网格内嵌编辑 => saveEvent(e) => e.values
【发布时间】:2014-09-16 12:03:28
【问题描述】:

我正在使用 Kendo UI 中的 Grid 来显示一堆数据,现在我想添加 InCell 编辑。

由于 JavaScript 不是我的强项,我无法解决以下问题:

网格定义为:

.Editable(e => e.Mode(GridEditMode.InCell))
.Selectable(e => e.Mode(GridSelectionMode.Single).Type(GridSelectionType.Cell))
.Events(events => events.Save("subfileSaved")

将数据源的批处理模式设置为 false。

现在在我的subfileSaved(e) 函数中,我在e.values 中获得了更改后的值。根据 Firebug,e.values 的值为Object { Fields[2].Content="11CLS1511"}。

问题:我怎样才能最好地从Fields[2].Content 中提取2 以及获取11CLS1511?

编辑: e.values.Fields[2].Content 不起作用,请参阅

【问题讨论】:

  • 从Fields[2].Content 中提取2 是什么意思?我怀疑Fields 是一个数组,其中2 是索引,Content 是该索引中对象的属性。
  • @NaveenBhat 我试过var tmp = e.values.Fields[2].Content,但后来我得到了TypeError: e.values.Fields is undefined。 (而且我事先也不知道我的函数是否会得到 2、5 或任何低于 20 的数字)。也许这只是我这边的一个简单错误,这将导致额头拍打;-)
  • 在firebug 或任何其他控制台中,如果您能够看到Object { Fields[2].Content="11CLS1511"} 对应e.values,那么您将不会收到此错误。为了更安全,你可以这样写 - var tmp = e.values.Fields ? e.values.Fields[2] ? e.values.Fields[2].Content : null : null
  • @NaveenBhat 那么我做错了什么?请参阅link 的屏幕截图。
  • 我觉得很奇怪。请使用此屏幕截图更新您的问题。

标签: javascript asp.net-mvc kendo-grid


【解决方案1】:

您确定“字段”是您可以访问的集合还是 Firebug 对您的 ViewModel 的枚举?

例如,您的网格绑定的模型是什么?

如果我有一个像这样的模型的网格;

Html.Kendo().Grid<AddressListViewModel>().Name("AddressList")
          .Columns(c2 =>
                                                   {
         c2.Bound(w => w.AddressTypeId).Title("Address Type").ClientTemplate("<#= AddressTypeDisplay #>");
          c2.Bound(w => w.AddressDisplay).Title("Common Name");

..错过一些

          .Events(events => events.Save("subfileSaved"))

然后在保存时,我可以检查所有值,例如这样;

function subfileSaved(e) {
    var someValue = e.Model.AddressDisplay;

    debugger;

}

Kendo 为您完成了所有艰苦的工作,并为您提供了一个很好的命名实例来读取模型和字段。我只是想知道您是否需要明确地访问模型和属性,但没有完整的网格代码很难准确地说出来。

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多