Delete a selected row in a uitable

8 vues (au cours des 30 derniers jours)
Cristian Martin
Cristian Martin le 29 Mai 2022
Modifié(e) : Voss le 29 Mai 2022
Hi, I have this script for delete a certain row wich is selected by the user:
set(handles.uitable4,'CellSelectionCallBack',@(h,e) set(h,'UserData',e));
D(Index.Indices(:,1), :) = [];
When I perform a selection and first time push the button to delete the row, i get this error:
Attempt to reference field of non-structure array.
Error in Generator_v1>pushbutton5_Callback (line 171)
a = D(Index.Indices(:,1), :);
Error in gui_mainfcn (line 95)
Error in Generator_v1 (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Generator_v1('pushbutton5_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
After the first attempt with this error everything works perfect, when I made a second selection it perform the action with no error.
What could that be?

Réponse acceptée

Voss le 29 Mai 2022
Move this line to the OpeningFcn:
set(handles.uitable4,'CellSelectionCallBack',@(h,e) set(h,'UserData',e));
Having that line in the pushbutton's Callback function means that the table's CellSelectionCallback is not set until after the pushbutton's Callback is executed at least once, which in turn means that the table has empty UserData even though a selection may have been made, because there was no CellSelectionCallback defined at the time the selection was made.
  2 commentaires
Voss le 29 Mai 2022
Modifié(e) : Voss le 29 Mai 2022
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)


En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by