ASP.Net GridViewは行、列を動的に追加します.


昨日お客様が需要を変更しました.具体的な需要は言わない.とにかくaspを使います.NetGridView動的追加行、列
 
            //       ,    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 {

    //       DefaultTableCellRenderer
 getTableCellRendererComponent  

    public void InstantiateIn(Control container)
    {
        TextBox text = new TextBox();
        text.ID = "Text";
        text.Text = "0";
        text.Width = 60;
        container.Controls.Add(text);
    }
}