How can i use CellSelectionCallback correctly?

I had a problem when I memlilih one cell in the table to be displayed into the text edit, when I choose a cell 1 then that arises is ID = 1, Name = f, Address = f (performed in accordance with what I have chosen) But when I select cell 2, appearing instead as when I select cell 1, how do I prevent the display according to the data in cell 2?
Here is my code in function myTabel_CellSelectionCallback :
try
al= eventdata.Indices;
dataseleksi=get(handles.myTabel,'Userdata');
getdata=dataseleksi(al);
%kode=getdata{1};
[ mydata,header,no ] = Lihat()
var1=mydata(1,1);
var2=mydata(1,2);
var3=mydata(1,3);
set(handles.txtid,'string',var1);
set(handles.txtnama,'string',var2);
set(handles.txtalamat,'string',var3);
catch end

2 Commenti

I do not understand the text of your question. What does "I had a problem when I memlilih one cell in the table to be displayed into the text edit" mean? What is "memlilih"?
I'm sorry for that, here the correct sentences : I had a problem when I choose one cell in the table to be displayed into the text edit, when I choose a cell 1 then that arises is ID = 1, Name = f, Address = f (performed in accordance with what I have chosen) But when I select cell 2, appearing instead as when I select cell 1, how do I prevent the display according to the data in cell 2?
I hope you can help me, please

Accedi per commentare.

 Risposta accettata

Alvindra - why are you using the property UserData when trying to access data in your table?
dataseleksi=get(handles.myTabel,'Userdata');
Unless something is different in your version of MATLAB, the data in the table is stored in the Data property, so the above would be replaced with
dataseleksi=get(handles.myTabel,'Data');
Then, to access a specific element/cell within that table, you can use the row and column indices from
al = eventdata.Indices;
as
cellIdcs = eventdata.Indices;
dataseleksi = get(handles.myTabel,'Data');
cellData = dataseleksi(cellIdcs(1), cellIdcs(2))
Try the above and see what happens!

5 Commenti

Alvindra Pratama
Alvindra Pratama il 9 Mag 2016
Modificato: Alvindra Pratama il 9 Mag 2016
Thank you for your answer, but i still have the same problem because when i try to select example the 2nd row, the data displayed in the edit text still the data from the 1st row.. I have the problem is here :
var1=mydata(1,1);
var2=mydata(1,2);
var3=mydata(1,3);
when i change number 1 at the front to 2, so the data will display is the data from 2nd row, how is the loop for that?
Alvindra - please show all of your code. What is mydata which hasn't been defined before? What happens when you step through the code with the debugger?
Alvindra - the first three lines of your myTabel_CellSelectionCallback callback do something similar to what we have discussed above
cellIdcs = eventdata.Indices;
dataseleksi = get(handles.myTabel,'Data');
cellData = dataseleksi(cellIdcs(1), cellIdcs(2))
So cellData corresponds to the element in the selected cell. But then you don't do anything with this variable and instead query the database with
[ mydata,header,no ] = Lihat();
You then take the first row of myData and do
var1=mydata(1,1);
var2=mydata(1,2);
var3=mydata(1,3);
set(handles.txtid,'string',var1);
set(handles.txtnama,'string',var2);
set(handles.txtalamat,'string',var3);
What is the purpose of re-querying the database especially as you don't include any clauses that may indicate which row to get the data from? I suppose that instead of getting the elements from the first row of mydata, you could instead grab the elements from the row which you have selected the cell. i.e.
rowIdx = cellIdcs(1);
[mydata, header, no] = Lihat();
var1 = mydata(rowIdx,1);
var2 = mydata(rowIdx,2);
% etc.
But if the kth row of the table is identical to the kth row in the database (assuming that you haven't removed or inserted any rows) then why not just take the elements from the table to populate the text controls?
rowIdx = cellIds(1);
var1 = dataseleksi{rowIdx,1);
var2 = dataseleksi{rowIdx,2);
var3 = dataseleksi{rowIdx,3);
% etc.
With the above, you avoid querying the database again.
Thank you very much, the answer to your very helpful to me and my problem in this case has been resolved

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by