2014-12-05 2 views
0

Этот вопрос касается редактируемых сеток ExtJS 3. Мне нужно суммировать поля ввода одного столбца редактируемой сетки. Существует the store's sum method, но иногда данные в полях ввода необязательно находятся в хранилище; например, вы можете сделать запись в поле ввода, а затем нажать кнопку на панели инструментов.Совокупность полей ввода редактируемой сетки ExtJS

«Традиционный» способ в данном случае состоит в том, чтобы настроить соответствующий слушатель и зафиксировать содержимое поля ввода в хранилище, но это может быть запутанным и кажется совершенно ненужным, если в результате нажатия на панель инструментов в любом случае, вы в конечном итоге будете перенаправлены в другое место. Есть ли другое решение?

+0

Вы используете плагин редактора строк? –

+0

Нет Я не использую плагин редактора строк, я поддерживаю (старую) сетку редактирования ExtJS 3. Нет метода findPlugin() в ExtJS 3 –

ответ

0

Альтернативой является сбор всех входных полей с использованием встроенной функции Ext.query; следующее делает это для второго столбца сетки (».x-сетка-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; 
} 
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; 
} 
+0

Это относится только к ExtJS 4 –

 Смежные вопросы

  • Нет связанных вопросов^_^