実行時に列がプログラムによって生成されるDataTableがあります。次に、このDataTableをGridViewにバインドします。私が思っているのは、これに対応するためにGridViewをどのように作成できるのか、それが不可能な場合、DataTableをうまくフォーマットされたHTMLに出力する方法です。実行時に生成された列を含むGridViewの作成
2
A
答えて
8
GridViewには、この目的のためにAutogenerateColumsプロパティがあります。また、例えば、その場で列を生成することができ :
VB.NET
Dim tbl As New DataTable
tbl.Columns.Add("ID", GetType(Int32))
tbl.Columns.Add("Name", GetType(String))
tbl.Columns.Add("Birthday", GetType(Date))
Dim pers As DataRow = tbl.NewRow
pers("ID") = 1
pers("Name") = "Tim"
pers("Birthday") = New Date(1973, 6, 9)
グリッドは、列自体を生成させるために使用AutoGenerateColumns
:
Me.GridView1.AutoGenerateColumns = True
Me.GridView1.DataSource = tbl
Me.GridView1.DataBind()
または動的に列を生成します
For Each col As DataColumn In tbl.Columns
Dim field As New BoundField
field.DataField = col.ColumnName
field.HeaderText = col.ColumnName
GridView1.Columns.Add(field)
Next
C#
foreach (DataColumn col in dt.Columns)
{
BoundField field = new BoundField();
field.DataField = col.ColumnName;
field.HeaderText = col.ColumnName;
GridView1.Columns.Add(field);
}
1
DataTableをGridviewのDataSourceとして設定するだけで済みます。 GridViewにはAutoGenerateColumns
プロパティがあります。バインドを実行する前に、それがtrue
に設定されていること、または手動で列を手動で事前作成することを確認してください。
1
他の回答がこれをカバーしていないというだけで、カスタム列でプログラムを使ってGridViewを設定する方法があります。
private GridView SetUpGrid()
{
GridView GView = new GridView();
GView .ColumnHeaderToolTip = "MyToolTip";
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("Col1Name");
gvc1.Header = "Column One";
gvc1.Width = Double.NaN; // Auto-Size
GView .Columns.Add(gvc1);
GridViewColumn gvc2 = new GridViewColumn();
gvc2.DisplayMemberBinding = new Binding("Col2Name");
gvc2.Header = "Column Two";
gvc2.Width = Double.NaN;
GView .Columns.Add(gvc2);
GridViewColumn gvc3 = new GridViewColumn();
gvc3.DisplayMemberBinding = new Binding("Col3Name");
gvc3.Header = "Column Three";
gvc3.Width = Double.NaN;
GView .Columns.Add(gvc3);
GridViewColumn gvc4 = new GridViewColumn();
gvc4.DisplayMemberBinding = new Binding("Col4Name");
gvc4.Header = "Column Four";
gvc4.Width = Double.NaN;
GView .Columns.Add(gvc4);
return GView;
}
+1
WebコントロールのGridViewColumnは存在しません。 – Fandango68
関連する問題
- 1. 実行時に自動生成された列を含むWPFデータグリッドの列ヘッダーの色を変更します。
- 2. 実行時に作成されたワイヤアップボタン
- 3. 実行時に作成されたクラスをシリアライズ
- 4. Visual Studioに自動生成された静的コンテンツを含む
- 5. ASP.NETバンドル/縮小:動的に生成されたJavascriptを含む
- 6. 実行時に作成されたFlex 4ターゲティングコンポーネント
- 7. 実行時に作成された可変パラメータリスト。
- 8. スコープに入る前に作成されたDbTransactionを含むTransactionScope
- 9. 実行時にSQLクエリを生成し、asp.netのgridviewにデータをバインドします。
- 10. Antでファイル名にランダムに生成された文字列を含む一時ファイルをコピーする
- 11. ポピュレートされたリストを含むカスタムコントロールを作成するには?
- 12. シェルスクリプトの実行時に記録プロセスが生成される
- 13. 実行時にエンティティを生成
- 14. 実行時に読み込むアプリケーションデータを作成する
- 15. 実行時にAndroid APKが生成されない
- 16. コンパイル時/実行時にマークされた文字列のグローバルリストを生成することは可能ですか?
- 17. 作成時に生成されたIDを文字列として別の列にコピーする
- 18. 実行時に作成されるフォームコントロールの反復
- 19. 実行時に作成されるコントロールのアクセス値
- 20. EXT JS 4実行時に決定される動的グリッド、列の作成
- 21. 実行時にJavaScriptによって作成されるアクセスエレメント
- 22. onclickを追加したり、実行時にデータベースから実行時に作成
- 23. 実行時にクラスを作成する
- 24. 実行時に動的クラスを作成
- 25. 実行時にレイアウトを作成する
- 26. 実行時にユーザコントロールオブジェクトを作成する
- 27. 実行時にusercontrolを作成する
- 28. 実行時にNinePatchを作成する
- 29. Rは二生成し、私は各行の単語を含む列持つ列
- 30. 実行時のXpath式の生成
新しい列のデータソースがGridViewのメインデータソース以外から来た場合はどうなりますか?グリッドビューはDataBindより前にデータソースを1つしか持たないのですか? – Fandango68
@ Fernando68:申し訳ありませんが、私はあなたの要件を理解していません。実際の質問を作成し、必要な情報をすべて提供するのが最善の方法かもしれません。それから私は答えようとすることができます。私に知らせるためにここに質問へのリンクを追加することができます。 –
http://stackoverflow.com/questions/35307156/gridview-how-to-add-columns-based-on-data-from-a-separate-data-source – Fandango68