javascript - 将 google.visualization.datatable 与复选框和 KnockOut 数据绑定(bind)相结合

标签 javascript jquery knockout.js google-visualization google-datatable

我正在将“普通”HTML 表格转换为 Google 的 DataTable。 主要是因为它会给我固定的标题和排序。 感谢Creating advanced KnockOut binding handler for google.visualization.datatable我设法为 DataTable 创建一个 KnockOut 绑定(bind)处理程序。 这对于只读数据非常有效。

现在我想转换一个每行都有一个复选框和一个输入文本框的表格。创建这些表单元素不是问题,但我对它们使用 KnockOut 数据绑定(bind)。如何将这些数据绑定(bind)添加到我的数据表中? 我试过这个:

data.setCell(
    0, 0, "<input type='checkbox' data-bind=checked: ' " + order.inOrder + "'/>"
);

data.setCell(
    0, 0, "<input type='checkbox' data-bind=checked: order.inOrder />"
);

但是两者都不起作用。当然,我尝试使用 Google 来寻找答案,但到目前为止还没有成功。

编辑: 更多背景信息: 我们有一个相当复杂的页面,它使用 AJAX 从服务器获取一些数据并填充表。 我们还使用 RequireJS,尽管 Google.Visualization 部分在 RequireJS 之外,因为我在集成它时遇到了麻烦;)

该页面是订单系统向导的一部分,复选框是“不订购”,输入框用于填写库存。该表为:

checkbox|Product name|amount|input box for stock|amount minus stock|price

“下一步”按钮需要保存整个表格,包括复选框和库存的(更新)值。

最佳答案

认为数据绑定(bind)不适用于 Google 图表

即使会,也看不到太多好处,因为无论如何您都需要手动加载数据表

因此,只需在加载数据表时提供所需的值即可,
类似...
data.setCell(0, 0, "<input type='checkbox' " + ((order.inOrder === true) ? "checked" : "") + "/>");

其他想法...

如果表格图表使用分页按钮,则仅呈现当前页面的行,因此绑定(bind)必须以某种方式发生在每个 'page' 上。事件

在表格中使用复选框输入将导致 'select'单击表行时触发的事件

关于javascript - 将 google.visualization.datatable 与复选框和 KnockOut 数据绑定(bind)相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024768/

相关文章:

javascript - Zeroclipboard 的问题不知道在哪里看

javascript - jQuery UI 自动完成突出显示完整单词而不是匹配的子字符串

javascript - 正则表达式不工作 "within"javascript 字符串

javascript - 避免关闭模态对话框 bootstrap 和 jsf

javascript - 为什么只有一个 Node readline 对象可以工作?

javascript - 如何在Jquery/js中设置div的order by条件?

javascript - 如何将多个文本区域元素中的所有文本放入数组中?

javascript - 继承和覆盖 Knockout 计算的可观察值

knockout.js - Knockout checkedValue 绑定(bind)不显示选中

javascript - es6 方法内部和外部构造函数 - knockout