Я работаю над проектом LiveCode, который отображает модальный формат с таблицей DataGrid.Как я могу редактировать поле в произвольной строке в livatode datagrid программно?
Если пользователь выбирает одну или несколько строк в DataGrid и нажимает кнопку OK, выбранные строки копируются в другую таблицу DataGrid в другом стеке.
Я хочу открыть поле редактирования в первой из скопированных строк в другом стеке.
Я нашел команду EditFieldText, но не смог определить, что следует предоставить в качестве первого параметра (pField).
Я предполагаю, что другие параметры (pIndex и pKey) - это индекс строки и столбца DataGrid соответственно.
Это код в моей кнопке OK:
on mouseUp
lock screen
put the dgHiLitedLines of group selectComponentGrid into rowNumbers
put the dgData of group selectComponentGrid into rows
put true into firstTime
repeat for each item rowNumber in rowNumbers
put rows[rowNumber] into row
dispatch "AddData" to group bomGrid of card inventoryItem of stack inventory with row
if firstTime is true then
# Set focus to this row's quantity field.
put "quantity" into colName
put the result into lineNo -- the result contains the index of the new row
send "EditCellOfIndex colName lineNo" to group bomGrid on card "inventoryItem" of stack "inventory"
# At this point the result contains "no control exists for index column"
put false into firstTime
end if
#end if
end repeat
unlock screen
close this stack
end mouseUp
Я провел несколько часов чтения LiveCode документации и поиска. Я нашел много статей, но не объяснил, как это сделать на самом деле.
Я использую LiveCode 9.0.0-dp-4 | Build 15003 Community Edition для Mac OS X 10.11.6.
Редактировать 2017-01-17 13:23: Я нашел команду EditCellOfIndex, изменил мой код, чтобы использовать его на основе различных примеров, которые я нашел, и не имел никакого успеха с ним тоже. Я обновил код выше, чтобы отразить изменения, которые я сделал.