首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

ASP.Net GridView 动态添加行,列。

2012-09-10 
ASP.Net GridView 动态添加行,列。。昨天客户改需求。具体需求就不说了。总之会用到asp.net GridView动态添加

ASP.Net GridView 动态添加行,列。。

昨天客户改需求。具体需求就不说了。总之会用到asp.net GridView动态添加行,列

?

            // 由于网上找的,只能添加String值。我想要的是直接渲染出TextBox,所以看了下网上的代码,然后自己写写,琢磨琢磨,最后弄出来了。?            // 具体代码如下            // 第一步,动态添加标头列            TemplateField field = null;            foreach(sys_UserTable u in userList){                field = new TemplateField();                field.HeaderText = u.U_CName;                field.FooterText = u.UserID+"";                this.gridView1.Columns.Add(field);            }                      ?// 第二部,动态添加行                       // 在这里,必须要使用DataTble,用来扩充GridView的行           ?DataTable dt = new DataTable();            for (int row = start; row <= end; row++) {                DataRow dRow = dt.NewRow();                for (int column = 0; column < userList.Count; column++) {                    // 设置表格第一行宽度                    (userData.Columns[column] as TemplateField).HeaderStyle.Width = 70;                    // 使用自定义模板,(我感觉很像swing-JTable的DefaultTableCellRenderer接口)                    (userData.Columns[column] as TemplateField).ItemTemplate = new ColumnTemplate();                }                // 添加一行(用来扩充GridView)                dt.Rows.Add(dRow);            }            this.userData.DataSource = dt;            this.userData.DataBind();

?

?? 下面就是自定义组件的渲染实现类

?

?

public class ColumnTemplate : ITemplate {    // 其实就是实现DefaultTableCellRenderergetTableCellRendererComponent方法    public void InstantiateIn(Control container)    {        TextBox text = new TextBox();        text.ID = "Text";        text.Text = "0";        text.Width = 60;        container.Controls.Add(text);    }}
?

?

热点排行