我正在将我的“普通”HTML表格转换为Google的DataTable。 主要是因为它会给我固定标题和排序。 感谢Creating advanced KnockOut binding handler for google.visualization.datatable我设法为DataTable创建了一个KnockOut绑定处理程序。 这适用于只读数据。
现在我想转换一个在每一行都有一个复选框和一个输入文本框的表。创建这些表单元素不是问题,但我在它们上使用KnockOut数据绑定。如何将这些数据绑定添加到我的数据表中? 我试过这个:
data.setCell(
0, 0, "<input type='checkbox' data-bind=checked: ' " + order.inOrder + "'/>"
);
和
data.setCell(
0, 0, "<input type='checkbox' data-bind=checked: order.inOrder />"
);
但两者都不起作用。当然我尝试使用谷歌找到答案,但到目前为止还没有运气。
修改 更多背景信息: 我们有一个相当复杂的页面,它使用AJAX从服务器获取一些数据并填充表格。 我们也使用RequireJS,虽然Google.Visualization部分在RequireJS之外,因为我无法将其集成;)
该页面是订单系统向导的一部分,复选框是“不订购”,输入框用于填写库存。该表是:
checkbox|Product name|amount|input box for stock|amount minus stock|price
“下一步”按钮需要保存整个表格,包括复选框和库存的(更新)值。
答案 0 :(得分:0)
不要认为数据绑定适用于Google图表
即使它会,也看不到多少好处,因为你需要手动加载DataTable
因此,只需提供加载DataTable时所需的值,
类似的东西...
data.setCell(0, 0, "<input type='checkbox' " + ((order.inOrder === true) ? "checked" : "") + "/>");
其他想法......
如果表格图表使用分页按钮,则只渲染当前页面的行,因此必须以某种方式对每个'page'
事件进行绑定
使用表格图表中的复选框输入将导致'select'
事件在单击表格行时触发