Как да получите позицията (колона, ред) на променената от потребителя клетка в контрола на таблица?

Използвам 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 grid контрол, поради проблеми с производителността.

person Anže Krpič    schedule 20.03.2015