2014-09-05 5 views
-1

Je veux obtenir les données de la vue actuelle de telerik Sorted: RadGrid .. Sur un CLICK je suis en utilisant le code suivant ..données d'accès de RadGridview

DataTable dtRecords = new DataTable(); 
foreach (Telerik.Windows.Controls.GridViewColumn col in OverallExposureGrid.Columns) 
{ 
     DataColumn colString = new DataColumn(col.UniqueName); 
     dtRecords.Columns.Add(colString); 
} 
foreach (Telerik.Windows.Controls.RadRowItem row in OverallExposureGrid.Items) // loops through each rows in RadGrid 
{ 
    DataRow dr = dtRecords.NewRow(); 
    foreach (Telerik.Windows.Controls.GridViewColumn col in OverallExposureGrid.Columns) //loops through each column in RadGrid 
     dr[col.UniqueName] = row[col.UniqueName].Text;//error 
    dtRecords.Rows.Add(dr); 

mi faire une erreur ou un son code incorrect pour obtenir des données. Et obtiens l'erreur suivante:

Error 2 Cannot apply indexing with [] to an expression of type 'Telerik.Windows.Controls.RadRowItem'

Répondre

0

utiliser dataloaded pour le même dans la grille. que les données chargent dans backend ... mettre à jour le même dans une liste particulière ... donc chaque fois que les changements de données dans la grille ... la liste est changée

0

Je vais répondre à votre deuxième erreur d'abord:

Cannot apply indexing with [] to an expression of type 'Telerik.Windows.Controls.RadRowItem'

Chaque fois que vous voyez cette erreur (ne pouvez pas appliquer l'indexation avec [] pour une expression de type ...), alors vous pouvez la contourner en utilisant LinQ:

using System.Linq; 

dr.ElementAt(col.UniqueName) = row.ElementAt(col.UniqueName).Text; 

maintenant, pour savoir si vous devez faire ça du tout? Je dirais non, tu ne devrais pas être. Lorsque vous utilisez WPF, nous lions généralement nos données, donc dans votre cas, vous auriez une propriété de collection, disons Items. Vous auriez alors des données liez-la ItemsSource propriété de votre RadGridView:

<RadGridView ItemsSource="{Binding Items}" ... /> 

Une fois que la propriété Items a été lié aux données, pour obtenir des données est de retour un processus simple ... il est dans la propriété Items:

SaveData(Items); 
+0

Monsieur, j'ai vérifié, les noms de colonne entrent correctement dans le datatable .. mais la ligne ne sont pas scannés. existe-t-il une autre méthode à extraire et enregistrer dans la ligne datatable. –