2012-04-13 4 views
0

Erste Frage wie benutzerdefinierte Spalte hinzufügen Spalte aspxgridview mit Looping Namen und den Wert der Spalte zu erhalten.wie benutzerdefinierte Spalte hinzufügen mit Schleife in aspxgridview (VB)

hier ist mein Code hinter:

Protected Sub gridSubmission_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSubmission.Init 
     Dim colBaru As GridViewDataTextColumn = New GridViewDataTextColumn() 
    For i As Integer = 1 To 6 
     colBaru.Caption = i 
     colBaru.FieldName = i 
     colBaru.UnboundType = DevExpress.Data.UnboundColumnType.Integer 
     colBaru.VisibleIndex = gridSubmission.VisibleColumns.Count 
     colBaru.PropertiesTextEdit.DisplayFormatString = "c2" 
     gridSubmission.Columns.Add(colBaru) 
    Next 
end sub 

, die ich neue Spalte bei aspxgridview hinzufügen verwendet. aber es wird ein Fehler angezeigt, "Ein Element mit demselben Schlüssel wurde bereits hinzugefügt."

zweite Frage, welche Eigenschaft, die ich diesen Code setzen verwenden, muss? Ich wollte diesen Code nach page.load laden! Wenn ich aspxgridview.init einlege, wurde es vor page.load geladen.

und die Ausgabe, die es mag dieses muss:

1   2   3   4   5   6 
row   row  row  row   row   row 
row   row  row  row   row   row 
row   row  row  row   row   row 
row   row  row  row   row   row 
row   row  row  row   row   row 

Hilfe pelase ...

Dank vor

Antwort

1

Was erste Frage geht, Sie wieder gleiche Spalte Objekt hinzufügen möchten und wieder in Spalten, daher erhalten Sie diesen Fehler. Versuchen Spalte Objekt in der Schleife zu schaffen - zum Beispiel:

Protected Sub gridSubmission_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSubmission.Init 

    For i As Integer = 1 To 6 
     Dim colBaru As GridViewDataTextColumn = New GridViewDataTextColumn() 
     colBaru.Caption = i 
     colBaru.FieldName = i 
     ... 

Soweit zweite Frage geht, ich bin nicht sicher, was Sie hier fragen. Wenn Sie vor/nach page.load meinen, meinen Sie page_load auf der Serverseite oder Seite laden auf Client (Browser) Seite? Offen gesagt, grid_init oder page_init sind die besten Orte zum Hinzufügen von Spalten. Wenn Sie Spalten in bestimmten Ereignissen auf der Seite hinzufügen möchten, sollten Sie am besten eine verborgene Variable auf der Seite des Browsers festlegen und diese Variable verwenden, um zu entscheiden, ob eine solche Initialisierung durchgeführt werden soll oder nicht.

+0

vielen Dank. es ist Arbeit. für die zweite frage habe ich mir selbst gelöst, ich habe neues sub eingefügt und es bei jeder änderung der seite aufgerufen. Nachdem ich die Dokumentation gelesen habe, wird die Eigenschaft init immer vor page.load geladen (ich benutze es auf der Serverseite). – tyo