iggridupdating - Обновление значений ячеек сетки по мере ввода

Я использую igGrid от Infragistics для обработки данных в веб-приложении моей компании. Мы хотим использовать сетку как «редактируемую сетку» для взаимодействия с пользовательскими данными (добавление/редактирование/удаление/просмотр записей).

Сценарий, который я хочу разыграть, заключается в том, что когда пользователь вводит допустимое имя элемента в одну ячейку в новой строке, следующая ячейка автоматически заполняется соответствующим описанием этого элемента. Пока я не могу заставить его обновляться автоматически.


person jonathan.mccrary    schedule 18.06.2013    source источник


Ответы (1)


Я полагаю, что официальный пример "Editing Combo Editor" даст вам ответ, который вы ищете :)

Как указано в его описании, изменение столбца «Название продукта» автоматически заполняет столбец «Цена». NB: сначала вам нужно будет выбрать «Имя категории».

Чтобы получить желаемый результат, необходимо выполнить 2 шага:

  1. Подключитесь к событию «Selection Changed» igCombo в контексте igGrid, поскольку экземпляры igCombo будут дочерними элементами DOM igGrid:

    $(document).delegate("#grid1", "iggridrendered", function (evt, ui) {
    var updating = $("#grid1").data("igGridUpdating");
    var editor = updating.editorForKey("ProductID");
    if (editor) {
        $(document).delegate("#comboProductID", "igcomboselectionchanged", comboSelectionChanged);
    }
    else {
        var colSettings = updating.options.columnSettings;
        colSettings[2].editorOptions.selectionChanged = comboSelectionChanged;
    }});
    
  2. Напишите обработчик события, который будет обновлять поле редактора для нужного столбца (в данном случае Price):

    function comboSelectionChanged(evt, ui) { var items = ui.items || []; если (items.length === 1) { var item = items[0]; var editor = $("#grid1").igGridUpdating("editorForKey", "Price"); $(редактор).igEditor("значение", продукты[item.index].Price); } }

Шаги взяты из представления HTML-кода примера (прямо под сеткой). Если вы хотите лучше рассмотреть этот фрагмент кода, я поместил его в отдельный JSFiddle здесь: http://jsfiddle.net/BorislavTraykov/4uJBD/

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

person Borislav T    schedule 19.06.2013