簡體   English   中英

使用在運行時生成的列創建GridView

[英]Creating a GridView with columns generated at runtime

我有一個DataTable,其中列是在運行時以編程方式生成的。 然后我將此DataTable綁定到GridView。 我想知道的是我如何創建GridView以適應這一點,如果不可能,我如何將DataTable輸出到格式良好的HTML中。

為此,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);
}

您應該能夠將DataTable設置為gridview的DataSource。 GridView具有AutoGenerateColumns屬性。 在執行綁定之前,請確保將其設置為true或手動預先創建列。

僅僅因為其他答案沒有涵蓋這一點,這里是如何以編程方式設置帶有自定義列的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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM