我正在使用Telerik Datagrid控件来显示100条记录。在我的应用程序中,用户选择他们想要编辑的内容,并使用表单允许用户更新记录。 同样,如果他们想要添加新记录,他们会点击“添加”,然后会显示该表单的空白版本。
我没有直接绑定到数据源。我通过将Itemsource设置为我的记录列表来向网格提供数据。
当用户编辑了一条记录时,我可以很容易地滚动并选择编辑过的记录:
//find row index of selected item
var lastRowUpdated = RadGridAssetTable.Items.IndexOf(this.RadGridAssetTable.SelectedItem);
// move to index following edit
RadGridAssetTable.ScrollIndexIntoView(lastRowUpdated);
RadGridAssetTable.SelectedItem = lastRowUpdated;
但是,当我添加新记录时,我无法弄清楚如何以编程方式滚动并选择新添加的网格项。
实际上我想在网格行中搜索(隐藏)记录ID,在控件中选择行索引并滚动到它
似乎没有办法以编程方式在网格中搜索数据,有人可以指出如何执行此操作的正确方向吗?
此致
答案 0 :(得分:0)
好的,所以我这样解决了。
var lastRowUpdated = 0;
var i = 0;
if (_assetsavedData.AssetId == -1)
{
foreach (var rowItem in from object row in RadGridAssetTable.Items select row as AssetLinked)
{
Debug.WriteLine(rowItem.AssetItems.AssetCommonName);
if (rowItem.AssetItems.AssetCommonName.Equals(_assetsavedData.AssetCommonName))
{
lastRowUpdated = i;
Debug.WriteLine("found at " + i);
break;
}
i++;
}
}
else
{
lastRowUpdated = RadGridAssetTable.Items.IndexOf(this.RadGridAssetTable.SelectedItem);
}