UItable CellSelectionCallback

26 views (last 30 days)
Eugene Kogan
Eugene Kogan on 13 May 2011
Edited: James Ang on 18 Apr 2016
How do I get the position of a call when I select it in a uitable? I know you can associate a CellSelectionCallback with a table, but what is the property to pull? A similar question two years ago said the proper field is Indices but this doesn't seem to work for me (Note, I am using R2008a). I would be expecting get(t,'Indices') to do the trick for me (t is the table), but such a field isn't recognized.

Accepted Answer

Walter Roberson
Walter Roberson on 13 May 2011
The CellSelectionCallback will be passed a minimum of two parameters, the first of which will be the uitable handle, and the second of which is the event data, which people commonly program to be received into the variable named "event". For CellSelectionCallback, event will be a structure which will have one field named "Indices" and it is that you want to look at.
For example,
function GasPricesTable_Selection_CB(src, event)
selected_cells = event.Indices;
  5 Comments
Walter Roberson
Walter Roberson on 26 Jun 2011
Not sure, Eugene might simply have Accepted the answer: that bumps it.
James Ang
James Ang on 18 Apr 2016
Edited: James Ang on 18 Apr 2016
This solves my problem.... maybe it'll help some of you guys..
1) right click on the table, select 'CellSelectionCallback'. An automated function will be generated for you (displayed in the property Inspector - also right click the table to select).
E.g mine is "@(hObject,eventdata)NmodeDataRead_v10('data_uitable_CellSelectionCallback',hObject,eventdata,guidata(hObject))'"
2) This function will be added to your codes.
function data_uitable_CellSelectionCallback(hObject, eventdata, handles)
% hObject handle to data_uitable (see GCBO)
% eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE)
% Indices: row and column indices of the cell(s) currently selecteds
% handles structure with handles and user data (see GUIDATA)
% disp(eventdata)
handles.datatable_row = eventdata.Indices(1);
handles.datatable_col = eventdata.Indices(2);
guidata(hObject, handles);
Just add the lines of codes above to get the indices...
hope this helps.

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!