希望很简单,但找不到任何这样的选择。
我有一个数据表——说......里面有 10 行。表单上的某些字段分别按名称绑定到 table.columns。
在另一个有网格的表单上,当我滚动网格时,详细字段会按预期刷新,因为网格会触发 DataTable 记录更改事件。
在不使用数据网格的情况下,如何将表格定向到特定行以在表单上加载/显示刷新...例如:
DataTable MyTable = new DataTable();
MyTable = GetResultsFromSQL(); // returns the 10 rows
MyTable.LoadTheDataForRow(3);
MyTable.LoadTheDataForRow(7);
MyTable.LoadTheDataForRow(2);
我知道我可以在表中使用 foreach 行,但需要明确使用,因为我不想遍历所有行,但需要对特定行具有特异性。
我查看了 LoadDataRow(),但这似乎是为了将数据推回服务器。不是我想要的...我只想让表格的“当前”行成为特定行...
谢谢
经过进一步研究,我发现基于 FORM 的控件“BindingSource”(或派生类)允许这样做,例如网格。但是,很明显,.Net 引擎正在做一些事情,最终将给定的行“加载”到最终触发回“BindingSource”的东西中……DataTable 有 RowChanging 和 RowChanged 事件,这些事件似乎是由OnRowChanging / OnRowChanged 代表,但我们如何告诉数据表我们希望它作为活动的“行”。
表单控件可以为其绑定源执行此操作,但在幕后真正发生的事情是触发这些 OnRowChanging 事件......我不想重新加载数据表、行等,只需更改被认为是“活动”行,如网格、列表框、组合框等。