2010-08-05 6 views
0

Bonjour à tous j'utilise DataGrid et il n'a pas de numérotation automatique. J'ai donc utilisé la méthode suivante pour le nombre dans rowheader mais le problème est que les nombres sont répétés et quand ils trient une colonne ils se réarrangent .. Aussi quand je fais défiler la page, quand la rangée sort de la visibilité et quand son numéro est en train de changer ... par exemple, au chargement de la page, vous voyez 1 à 30 dans l'ordre lorsque vous faites défiler deux fois, la commande peut devenir 1,30,25,4, ... etc.theres pas d'ordre spécifique .. il affiche nombre aléatoire en-tête de ligne .. s'il vous plaît suggérer une façon pour moiEn-tête de ligne de numérotation dans la grille de données en utilisant C#

dans la page XAML i appelé la méthode de la manière suivante LoadingRow = « dg_expSummary_LoadingRow »

dans le backend le code est le suivant

private void dg_expSummary_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.Header = e.Row.GetIndex() + 1; 
} 

Répondre

0

Je le fais dans VB.Net. Programmez le numéro de ligne du jeu de résultat original en ligne (x) .Column (0) .Tag puis:

Private Sub gridData_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles gridData.RowPostPaint 

    Dim style As DataGridViewCellStyle 
    Dim Pen As Pen 
    Dim rec As RectangleF 
    Dim format As StringFormat 
    'Dim n As Integer 

    'get style to use for row header cells    
    style = gridData.RowHeadersDefaultCellStyle 

    'get pen (needed to get text brush)    
    Pen = New Pen(style.ForeColor) 

    'get row rectangle and adjust to width of row header    
    rec = e.RowBounds 
    rec.Width = gridData.RowHeadersWidth 

    'create formating object to center row number    
    format = StringFormat.GenericTypographic 
    Format.Alignment = StringAlignment.Center 
     Format.LineAlignment = StringAlignment.Center 

     'draw the row number in row header    
     e.Graphics.DrawString(gridData.Rows.Item(e.RowIndex).Cells(0).Tag.ToString(), style.Font, Pen.Brush, rec, format) 

    End Sub 

Mon code est adapté de l'exemple aC# trouvé ici: http://www.daniweb.com/forums/thread302079.html

0

Essayez de définir vos noms de colonne une fois, au bon moment. Par exemple. après avoir défini la source de données.

+0

de colonne sont dynamiquement generated.user avoir le contrôle sur le columns..so qui ne peuvent pas travailler pour moi .. – prem

+0

ne peut vous suivre la tentative de changer la la source de données ? ou changer d'ordre de colonne? – thelost

+0

je ne comprends pas le point.pouvez-vous m'expliquer clairement .. désolé – prem

0

Définissez cette propriété pour vous DataGrid en XAML

VirtualizingStackPanel.VirtualizationMode = « standard »

Questions connexes