Row Editable in Table...?
29 次查看(过去 30 天)
显示 更早的评论
I have one table in matlab in that table i want first row editable for all columns and all other Rows should not editable across all columns .
is if possible if yes how can i do it...?
2 个评论
Dyuman Joshi
2024-2-28
I asked the same to the MATLAB Central AI Chat Playground and it said the following -
To make the first row editable and all other rows non-editable in a MATLAB table, you can use the uitable function along with the CellEditCallback property. Here's an example:
% Create a sample table
data = {'John', 25, 'USA'; 'Emily', 30, 'UK'; 'Michael', 35, 'Australia'};
columnNames = {'Name', 'Age', 'Country'};
table = uitable('Data', data, 'ColumnName', columnNames);
% Set the CellEditCallback property
set(table, 'CellEditCallback', @(src, event) editCallback(src, event));
% Callback function to handle cell editing
function editCallback(src, event)
% Get the row and column indices of the edited cell
row = event.Indices(1);
col = event.Indices(2);
% Allow editing only for the first row
if row == 1
% Allow editing
src.Data{row, col} = event.NewData;
else
% Revert to the previous value
src.Data{row, col} = event.PreviousData;
end
end
Voss
2024-2-28
编辑:Voss
2024-2-28
That seems like a potentially viable workaround.
Of course, since the default for uitable is that no columns are editable, you'd have to change that for the CellEditCallback to have any effect, e.g.:
% Set the ColumnEditable and CellEditCallback properties
set(table, ...
'ColumnEditable', true, ...
'CellEditCallback', @(src, event) editCallback(src, event));
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!