Grid手动添加模板列数据丢失有关问题
Grid手动添加模板列数据丢失问题
我写了一个自定义用户,里面封装了一个GridView,在调用使用代码方式来添加列,但是在添加模板列时出现了一点问题
数据在回发给服务器时,模板列的数据丢失了.
流程描述为:
第一次进入页面,数据绑定 > 点击编辑 > 回发 > 触发Edit方法 > 此时无法取值Cells[2]中的值
> 数据绑定后 > 可以取值Calls[2]种的值
请各位大大们赐教~
------解决方案--------------------
动态添加的模板列貌似应写在page_load当中,楼主的写在那里的.
------解决方案--------------------
动态添加的模板列需要在
protected override void OnInit(EventArgs e)
里添加;否则没状态;
每次都得吧那些控件添加上去;
因为,动态添加模板不会被系统保持所以每次都需要添加一次的!
------解决方案--------------------
需要在事件OnInit中寫,你的系统刷一次需要重新动态添加一次
我写了一个自定义用户,里面封装了一个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中寫,你的系统刷一次需要重新动态添加一次