Delete row in a user-sorted UItable throws error
1 次查看(过去 30 天)
显示 更早的评论
Dear colleagues
I have a UItable with sortable columns. Users can delete rows which is implemented by deleting a row from the Data property. This seems to replace also the read-only property DisplayData which is correct. However, if the user sorts the table by clicking the sort icon prior to the row deletion, the DisplayData cannot be accessed afterwards. Am I doing something wrong? Try the following code:
function uitableRowDeletion
% Situation A:
% 1. Run the script
% 2. Press delete
% 3. It deletes second row, as it should. Everything OK.
%
% Situation B:
% 1. Run the script
% 2. Sort the data by clicking on the show-up button in the upper right corner of the uitable
% 3. Press delete
% 4. Accessing DisplayData property now results in error
h = findall(0,'type','figure'); close(h); % Close all uifigures
clear;
A = [1 3 2]';
t = table(A);
f = uifigure('WindowKeyPressFcn', @cbKey);
uit = uitable(f, 'Data', t, 'ColumnSortable', true);
% Nested callback function, deletes hard-coded second row
function cbKey(~, evt)
if strcmp(evt.Key, 'delete')
uit.Data(2, :) = [];
disp(uit.DisplayData)
end
end
end
Thank you for any ideas.
Jan Kudláček
2 个评论
回答(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!