Как получить позицию (столбец, строку) измененной пользователем ячейки в элементе управления Table?

Я использую tutorial_Form_Table.

Таблица имеет динамически назначаемые значения, например:

for (col = 1; col <= 5; col++)
{
    for (row = 1; row <= 5; row++)
    {
        if ((col == 2) || (col == 4))
        {
            if (row > 1)
                table.cell(col,row).data(row*col);
            else
                table.cell(col,row).data("Text "+int2str(row*col));
        }
        else
            table.cell(col,row).data("Text "+int2str(row*col));
    }
}

Таблица

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

Спасибо.


person draganndi    schedule 20.03.2015    source источник


Ответы (1)


Таблица имеет два свойства: row() и column(), которые возвращают значения текущей активной ячейки.

public void activeCellChanged()
{
    super();
    info(strFmt('%1 %2 %3', Table.row(), Table.column(), Table.cell(Table.column(), Table.row()).data()));
}

Для каждого из элементов управления, которые вы добавляете в элемент управления таблицы, вы можете переопределить измененный метод, чтобы увидеть введенное вами новое значение.

public boolean modified()
{
    boolean ret;

    ret = super();

    info(strFmt('New data that we need to save: %1, %2 -> %3', Table.row(), Table.column(), Table.cell(Table.column(), Table.row()).data()));

    return ret;
}

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

person Anže Krpič    schedule 20.03.2015