2009-04-22 10 views
2

Ich versuche, Daten in eine neue Spalte, die ich in meiner Gridview erstellt haben. Ich erstelle die Spalte mit dem folgenden Code:VB .NET Erstellen von zusätzlichen Spalten in Gridviews

Dim Field As New BoundField 
Field.HeaderText = "Cummulative Amount" 
Dim Col As DataControlField = Field 
Me.GridView1.Columns.Add(Col) 

Jetzt muss ich gehen und fügen Sie Daten für die Zeilen unterhalb der Spalte. Ich habe gesehen, dass ppl sagt, ich muss es gleich einem Datenfeld setzen, aber wie erstelle ich ein Datenfeld von Grund auf neu?

Vielen Dank im Voraus,

Antwort

1

Update:

Sie können für die gridview diese berechnete Spalte rechts im Markup erstellen. Unter der Annahme, dass Ihre Datenquelle ein Feld mit dem Namen „Betrag“ hat und ein anderes Feld mit dem Namen „Menge“ und dass Ihre „kumulativen Menge“ ist ein Produkt dieser beiden Spalten, könnten Sie so etwas zu tun:

<asp:GridView runat="server" DataSource="sqlDataSource"> 
    <columns> 
    <asp:BoundField HeaderText="Amount" DataField="Amount" /> 
    <asp:BoundField HeaderText="Quantity" DataField="Quantity" /> 
    <asp:TemplateField HeaderText="Cummulative Amount"> 
     <ItemTemplate> 
     <asp:Label runat="server" Text='<%# Eval("Amount") * Eval("Quantity") %>' /> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </columns> 
</asp:GridView> 
+0

Ja, das ist genau das, was Ich versuche es zu tun. – Splashlin

+0

Sind die anderen Spalten automatisch generiert oder fügen Sie sie über Markup hinzu? –

+0

Ich habe den Gridview-Assistenten verwendet. Sie werden alle aus einer Tabelle erstellt, die in der Datenbank gespeichert ist. Ich muss diese Spalten erstellen, die berechnete Werte aus den Feldern davor in der Zeile sind. – Splashlin

3

Ja, Menschen haben Sie gesagt, die richtige Sache - Sie müssen die DataField Eigenschaft eines Boundfield festzulegen, um für sie gemacht werden. Ihr DataField wäre eine öffentliche Eigenschaft, die von der Datenquelle zur Verfügung gestellt wird, an die Sie Ihr GridView binden.

Als Nebenstelle müssen Sie keinen DataControlField erstellen, da die BoundField Klasse von DataControlField erbt. Sie können BoundField direkt zur Columns-Auflistung von GridView hinzufügen.

Dim Field As New BoundField() 
Field.HeaderText = "Cumulative Amount" 
Field.DataField = "CumulativeAmount" 

Me.GridView1.Columns.Add(Field)