Grid手动添加模板列数据丢失有关问题

Grid手动添加模板列数据丢失问题
我写了一个自定义用户,里面封装了一个GridView,在调用使用代码方式来添加列,但是在添加模板列时出现了一点问题

C# code

//这是添加模板列的代码
//添加头模板
dt_name.HeaderTemplate = new Bussiness.CollapsibleGridViewBussiness<CheckBox>(DataControlRowType.Header, "仓库名称", null, null);
//添加普通状态的模板
            dt_name.ItemTemplate = new Bussiness.CollapsibleGridViewBussiness<Label>(DataControlRowType.DataRow, "",null , new string[] { "dt_name" });
            DropDownList ddl = new DropDownList();
            ddl.ID = "ddl1";
            ddl.Width = 75;
//添加被编辑状态下的模板
            dt_name.EditItemTemplate = new Bussiness.CollapsibleGridViewBussiness<DropDownList>(DataControlRowType.DataRow,"", ddl, null);



数据在回发给服务器时,模板列的数据丢失了.

C# code

//这是RowEditing事件触发后调用的方法
bool Edit(int RowIndex)
    {
        //Rows[RowIndex].Cells[2]是模板列,但是取值不到
        string dt_name = CollapsibleGridView1.gv.Rows[RowIndex].Cells[2].Text;
        CollapsibleGridView1.gv.EditIndex = RowIndex;
        //数据绑定
        CollapsibleGridView1.bindevent();
        //而在数据绑定后(转成Edit状态后)则可以取到Cells[2]的控件
        DropDownList ddl = CollapsibleGridView1.gv.Rows[RowIndex].Cells[2].Controls[0] as DropDownList;
        sb.SetShopUpdateDDL(ddl, dt_name);
        return false;
    }



流程描述为:

第一次进入页面,数据绑定 > 点击编辑 > 回发 > 触发Edit方法 > 此时无法取值Cells[2]中的值 
> 数据绑定后 > 可以取值Calls[2]种的值
请各位大大们赐教~

------解决方案--------------------
动态添加的模板列貌似应写在page_load当中,楼主的写在那里的.
------解决方案--------------------
动态添加的模板列需要在

protected override void OnInit(EventArgs e)

里添加;否则没状态;
每次都得吧那些控件添加上去;

因为,动态添加模板不会被系统保持所以每次都需要添加一次的!
------解决方案--------------------
需要在事件OnInit中寫,你的系统刷一次需要重新动态添加一次