1

我想在 HTML 页面中有一个很好的交互式网格视图。我正在为我的技术堆栈使用 nodejs、express、twitterbootstrap、knockoutjs。我正在尝试使用 KOGrid 来显示各种数据点,这些数据点具有一些不错的内置列排序和其他网格功能。

我的问题是尝试在连续单击按钮时触发事件。并将该特定行中的一些各种数据字段传递给该事件。所以在 KOGrid 的细节中,我使用的是 cellTemplates,我需要在 onclick 事件中调用一些函数,但是向该函数传递一些 KOGRID 数据有界值。所以,在我的输入元素中我会有 data-bind="onclick: [Name of my function]([name of some data bounded variable], [name of some other data bounded variable])

有人可以告诉我如何做到这一点吗?

这是我的代码示例... CBTemplate 中的输入/单击是我遇到问题的地方。

CB模板:

<script type="text/html" id="actionTemplate">
<div data-bind="kgCell: $cell">
<input type="checkbox" value="1" class="checkbox" checked="checked" data-bind="onclick: 'MyOnClickFunction( siteId(), status() )'"/>
</div>
</script>

分区标签:

<div data-bind="koGrid: { data: offer.siteCounts,
                    columnDefs: [ { field: 'templateField0', displayName: 'Site', cellTemplate: 'siteTemplate', width: 150},
                                 { field: 'status', displayName: 'Current Status', cellClass: 'site', cellTemplate: 'statusTemplate', width: 115},
                                 { field: 'details', displayName: 'Details', width: 175},
                                 { field: 'actionField0', displayName: 'Action', cellTemplate: 'cbTemplate', width: 200}],
                    autogenerateColumns: false,
                    displaySelectionCheckbox: false,
                    isMultiSelect: false }">
</div>
4

1 回答 1

1

使用 KO的click 事件绑定应如下所示:

data-bind="click: function(data,event) { MyOnClickFunction(siteId(), status()) }"

这是一个有效的 JSFiddle,您可以在其中使用它。

一些旁注:

  • 在我的示例中,我使用了$root 绑定上下文属性来访问示例函数: $root.offer.MyOnClickFunction. 您需要根据您在视图模型上定义的级别来调整它MyOnClickFunction

  • return true如果您确实想让默认单击操作继续进行(例如选中复选框等),则需要从单击绑定处理程序中

于 2012-11-27T19:13:00.117 回答