首先创建一个GridView控制,并添加<Columns></Columns>为以后创建绑定列做好准备!HTML代码如下:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<strong>Dynamic Grid</strong></td>
</tr>
<tr>
<td>
<asp:GridView ID="GrdDynamic" runat="server" AutoGenerateColumns="False">
<Columns>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
这是后台代码,如下 :
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
//创建一个DatTable实例dt;
DataTable dt = new DataTable();
//创建ID列,并把它加到dt中.
DataColumn dcol = new DataColumn(ID ,typeof(System.Int32));
dcol.AutoIncrement = true;
dt.Columns.Add(dcol);
//创建一个NAME列,并加入到dt中,
dcol = new DataColumn(NAME, typeof(System.String));
dt.Columns.Add(dcol);
//现在动态的添加列.
//当第一列自动添加,我们没有添加任何东西.
//我们来增加一些数据到列中.
for (int nIndex = 0; nIndex < 10; nIndex++)
{
//创建一行.
DataRow drow = dt.NewRow();
//把数据插入到行的列中.
drow[NAME] = "Row-" + Convert.ToString((nIndex + 1));
//把行加到表.
dt.Rows.Add(drow);
}
#endregion
foreach (DataColumn col in dt.Columns)
{
BoundField bfield = new BoundField();
bfield.DataField = col.ColumnName;
bfield.HeaderText = col.ColumnName;
GrdDynamic.Columns.Add(bfield);
}
GrdDynamic.DataSource = dt;
GrdDynamic.DataBind();
}
}