2

コードビハインド ファイル asp.net C# で新しいグリッドビューを作成したいと考えています。まさに、C#コードでそのようなboundfieldをグリッドビューに追加したい:

<asp:BoundField DataField="p_type" HeaderText="type" ItemStyle-Width="70px">
   <ItemStyle Width="70px"></ItemStyle>
</asp:BoundField>

次のコードで新しいグリッドビューを作成しました。

 GridView GridView1 = new GridView();
 GridView1.AllowPaging = false;
 GridView1.CellPadding = 4;
 GridView1.GridLines= GridLines.None;
 GridView1.AutoGenerateColumns = false;

そして、このグリッドビューに新しいboundFieldを追加したいと思います. C#コードでそれを作る方法は?

4

1 に答える 1

9

この記事では、c#コードでグリッドビューを実装する方法について説明します:http: //www.codeproject.com/Articles/13461/how-to-create-columns-dynamically-in-a-grid-view ここでそれを作成するためのサンプルコード:

public partial class _Default : System.Web.UI.Page
{
    #region constants
    const string NAME = "NAME";
    const string ID = "ID";
    #endregion

    protected void Page_Load(object sender, EventArgs e)
    {
        loadDynamicGrid();
    }

    private void loadDynamicGrid()
    {
        #region Code for preparing the DataTable

        //Create an instance of DataTable
        DataTable dt = new DataTable();

        //Create an ID column for adding to the Datatable
        DataColumn dcol = new DataColumn(ID ,typeof(System.Int32));
        dcol.AutoIncrement = true;
        dt.Columns.Add(dcol);

        //Create an ID column for adding to the Datatable
        dcol = new DataColumn(NAME, typeof(System.String));
        dt.Columns.Add(dcol);

        //Now add data for dynamic columns
        //As the first column is auto-increment, we do not have to add any thing.
        //Let's add some data to the second column.
        for (int nIndex = 0; nIndex < 10; nIndex++)
        {
            //Create a new row
            DataRow drow = dt.NewRow();

            //Initialize the row data.
            drow[NAME] = "Row-" + Convert.ToString((nIndex + 1));

            //Add the row to the datatable.
            dt.Rows.Add(drow);
        }
        #endregion

        //Iterate through the columns of the datatable to set the data bound field dynamically.
        foreach (DataColumn col in dt.Columns)
        {
            //Declare the bound field and allocate memory for the bound field.
            BoundField bfield = new BoundField();

            //Initalize the DataField value.
            bfield.DataField = col.ColumnName;

            //Initialize the HeaderText field value.
            bfield.HeaderText = col.ColumnName;

            //Add the newly created bound field to the GridView.
            GrdDynamic.Columns.Add(bfield);
        }

        //Initialize the DataSource
        GrdDynamic.DataSource = dt;

        //Bind the datatable with the GridView.
        GrdDynamic.DataBind();
    }
}
于 2012-08-15T14:27:04.467 に答える