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);
    }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值