这个问题涉及ExtJS 3可编辑网格。我需要总计可编辑网格的一列的输入字段。有the store's sum method但有时输入字段中的数据不一定在商店中;例如,您可以在输入字段中创建一个条目,然后单击工具栏上的按钮。
在这种情况下,“传统”方式似乎是设置适当的侦听器并将输入字段的内容提交到商店,但如果单击工具栏按钮,这可能会变得错综复杂并且似乎完全没必要无论如何,你最终会被重新定向到其他地方。还有其他解决方案吗?
答案 0 :(得分:0)
另一种方法是使用经常忽略的Ext.query功能收集所有输入字段;以下为网格的第二列执行此操作('。x-grid-col-0'将是第一列):
var qtyFields = Ext.query('.x-grid3-col-1 input', myGrid.getView().mainBody.dom);
var total = 0;
var qty;
for (var i=0, n=qtyFields.length; i<n; i++) {
qty = parseFloat(qtyFields[i].value);
total += isNaN(qty) ? 0 : qty;
}
答案 1 :(得分:0)
不依赖于HTML中知道类名的替代方法是从编辑插件中获取信息。
var fields = grid.findPlugin('rowediting').editor.form.getFields();
var total = 0;
for (var i=0, n=fields.getCount(); i<n; i++) {
var qty = parseFloat( fields.getAt(i).getValue() );
total += isNaN(qty) ? 0 : qty;
}