2016-09-14 2 views
0

J'ai un formulaire de saisie de données avec RadGridView. Les données sont indexées par ordre alphabétique dans le champ principal de la ligne. Lorsque j'ajoute une nouvelle ligne et que j'appuie sur update, il va bien sûr à sa place dans l'ordre des lignes. Mais je ne veux pas seulement que la nouvelle ligne soit sélectionnée, mais je veux aussi que ma fenêtre de grille soit affichée. Quand j'utilisais la valeur par défaut GridView en C# ce code a parfaitement fonctionné:Afficher la ligne sélectionnée dans gridview

private void btnUpdate_Click(object sender, EventArgs e) 
{ 
    int id = 0;    
    id = Convert.ToInt32(lblId.Text);    
    foreach (var dgr in gridViewCompanies.Rows) 
    { 
     if (dgr.Cells[0].Value.Equals(tbl.ID)) 
     { 
      dgr.IsSelected = true; 
      dgr.Cells[0].IsSelected = true; 
      gridViewCompanies.FirstRowIndex = dgr.Index; 
      break; 
     } 
    } 
} 

(Je viens de copier cette partie correspondante du code)

Mais maintenant que je me sers RadGridView (pour une autre raison) que dernière ligne gridViewCompanies.FirstRowIndex = dgr.Index; semble ne pas fonctionner. Cela signifie que ma nouvelle ligne est sélectionnée mais la vue ne l'affiche pas. Je dois faire défiler vers le bas pour trouver la ligne nouvellement ajoutée.

Répondre

-1

C'est ce qui a finalement fonctionné:

private void btnUpdate_Click(object sender, EventArgs e) 
    { 
     int id = 0;    
     id = Convert.ToInt32(lblId.Text);    
     foreach (var dgr in gridViewCompanies.Rows) 
     { 
      if (dgr.Cells[0].Value.Equals(tbl.ID)) 
      { 
       dgr.IsSelected = true; 
       dgr.Cells[0].IsSelected = true;GridTableElement tableElement = this.gridViewCompanies.CurrentView as GridTableElement; 
         tableElement.ScrollToRow(dgr.Index); 

       break; 
      } 
     } 
    } 
0
private void btnUpdate_Click(object sender, EventArgs e) 
    { 
     int id = 0;    
     id = Convert.ToInt32(lblId.Text);    
     foreach (var dgr in gridViewCompanies.Rows) 
     { 
      if (dgr.Cells[0].Value.Equals(tbl.ID)) 
      { 
       dgr.IsSelected = true; 
       dgr.Cells[0].IsSelected = true; 

       this.radGridView.TableElement.VScrollBar.Value = dgr.Index; 
       break; 
      } 
     } 
    } 

Essayez ce code

+0

ne semble toujours pas fonctionner – Zoe

+0

Alors, vous sélectionnez la ligne mais pas Highline il? –

+0

Non, il est en surbrillance et tout. La chose est, par exemple, si j'ai ajouté une nouvelle ligne qui commence par "F", après mise à jour indexée dans Toutes les autres lignes commencent par F (qui peut être plus bas dans ma vue). Mais je veux que la grille défile à l'endroit où cette ligne est sélectionnée et montre-la moi. Ce code a parfaitement fonctionné avec la grille par défaut. Cela ne fonctionne pas avec telerik radgrid – Zoe