2013-03-02 58 views
0

我正在使用Telerik Datagrid控件显示100条记录。在我的应用程序中,用户选择他们想要编辑的内容,并使用表单来允许用户更新记录。同样,如果他们希望添加新记录,他们点击“添加”,并出现一个空白版本的表格。在Datagrid中搜索并滚动并选择新添加的项目

我没有直接绑定到数据源。通过将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

好了,我解决了这个样子。

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); 
     } 
相关问题