2009-04-22 20 views
2

私は私のgridviewで作成した新しい列にデータを追加しようとしています。以下のコードで列を作成します。VB .NET Gridviewsで追加の列を作成

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

ここで、列の下にある行のデータを追加する必要があります。私はそれをデータフィールドと同じにする必要があるとpplが見てきましたが、データフィールドを最初から作成するにはどうすればいいですか?事前に

おかげで、

答えて

1

アップデート:

あなたが右のGridViewのマークアップでは、この計算列を作成することができます。あなたのデータソースは、「金額」という名前のフィールドと「数量」という名前の別のフィールドを持っており、あなたの「Cummulative量」は、これらの二つの列の積であると仮定すると、あなたはこのような何か行うことができます:

<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

をはいそれは正確に何私はやろうとしている。 – Splashlin

+0

他の列は自動生成されていますか、マークアップによって追加していますか? –

+0

私はgridviewウィザードを使用しました。それらはすべてDBに格納されたテーブルから作成されます。行の前のフィールドから計算された値であるこれらの列を作成する必要があります。 – Splashlin

3

はい、人々はあなたに正しい事を言った - あなたはそれをレンダリングするためにBoundFieldのDataFieldプロパティを設定する必要があります。 DataFieldは、GridViewをバインドするデータソースによって公開されるパブリックプロパティです。

BoundFieldクラスがDataControlFieldから継承されているため、別の点として、DataControlFieldを作成する必要はありません。 BoundFieldをGridViewのColumnsコレクションに直接追加することができます。

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

Me.GridView1.Columns.Add(Field) 
関連する問題