我使用以下代码获取所选单元格的行索引:
row = eventdata.Indices(1);
我也可以通过将1更改为2来获取列索引。但是我希望能够在该特定行中获取我想要的任何单元格的内容,而无需用户实际单击该特定单元格而是在任何位置在那一行。让我们说我想从第一列获取数据,在我的例子中代表ID。
在伪代码中,它看起来像:
x = getRowOfSelectedCell
field = Indices(x,1);
假设所选行为5.变量字段将包含第5行第一列中单元格的值。
任何想法如何进行?
答案 0 :(得分:1)
怎么样:
function ScriptTest
d = rand(10,7);
t = uitable('Data', d, 'Units', 'norm', 'Position', [0,0,1,1]);
RequiredColumnIndex = 5;
set( t, 'CellSelectionCallback', {@TableSelectionCB, RequiredColumnIndex});
function TableSelectionCB(hTable, eventdata, RequiredColumnIndex)
rowIndex = eventdata.Indices(1);
TableData = get(hTable,'Data');
field = TableData(rowIndex, RequiredColumnIndex);
fprintf(' Value in cell [Row %d /Col %d ] is %f \n', rowIndex, RequiredColumnIndex, field);
end
end
在这里,我决定检索第5列中的数据(如您所建议的),并在命令窗口中打印相应的单元格值。