【问题标题】:Kendo grid, ko binding, and access to row indexKendo 网格、ko 绑定和对行索引的访问
【发布时间】:2013-12-08 18:47:05
【问题描述】:

我有一个 ko 视图模型,我使用 knockout-kendo.js 将它绑定到一个 KendoGrid

我使用 rowTemplate,因为我在某些列(图标、链接等)中需要一些自定义功能

我需要根据行号做一些自定义功能。

当直接绑定 ko viewmodel 时,我可以使用 foreach 绑定,在行模板中我有 $index,它给了我当前的行号。

当视图模型绑定到 Kendo Grid 时,我怎样才能得到相同的结果?

谢谢

【问题讨论】:

  • 目前模板中没有内置索引功能。但是您可以使用 jquery index() 方法... jsfiddle.net/F88Bf
  • 谢谢,效果很好。
  • ... 通过向模板内的 添加以下属性:data-bind="css: $root.altRowClass(j$($element).closest('tr')。 index()) 我有 j$,因为应用程序也使用 mootools,并且我将 jquery 重新定义为 j$。但是,$element 实际上指的是什么元素?我看到它是 HTMLSpanElement
  • $element 指的是您具有数据绑定属性的当前元素:knockoutjs.com/documentation/binding-context.html 所以您的tr 您可能只需要data-bind="css: $root.altRowClass(j$($element).index())

标签: knockout.js kendo-grid knockout-kendo


【解决方案1】:

目前在 Kendo-Knockout 模板中没有内置索引功能支持(在本机 Kendo 模板中也不支持此功能)。

但是,您可以将jQuery's index() 方法与$element 绑定上下文属性结合使用,以获取数据网格中的当前tr 位置(尽管如果您使用分页,这将无法正常工作):

<div data-bind="kendoGrid: { data: items, rowTemplate: 'rowTmpl', 
                             useKOTemplates: true }"> </div>

<script id="rowTmpl" type="text/html">
    <tr>
        <td>
            Row index: 
                <span data-bind="text: $($element).closest('tr').index()"></span>
        </td>
    </tr>
</script>

演示JSFiddle.

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签