if (!IsPostBack)
{
BindDate();
}
public void BindDate()
{
#region 动态生成列前准备工作
BoundField bf = null;//定义列
GridView1.Columns.Clear();//清空列
GridView1.AutoGenerateColumns = false; //自动生成列取消
System.Text.StringBuilder sb = new System.Text.StringBuilder();//将字段数组变成字符串,用于分页传参
#endregion #region 添加自定义列
TemplateField tfColumn = new TemplateField();//实例化自定义列
tfColumn.HeaderText = "选择";
tfColumn.ItemTemplate = new MyTemplate("", DataControlRowType.DataRow, PassID == null ? " " : PassID);
GridView1.Columns.Add(tfColumn);
#endregion #region 通过传的字段名,动态生成普通数据列
for (int i = 0; i < Head.Length; i++)
{
bf = new BoundField();
bf.DataField = Field[i].ToString().Replace('[',' ').Replace(']',' ').Trim();//数据字段
bf.HeaderText = Head[i].ToString();//字段标题
bf.SortExpression = Field[i].ToString();//用于字段正反排序
sb.Append(Field[i].ToString() + ",");//分页传参
GridView1.Columns.Add(bf);//添加字段
}
#endregion}
上面是主要代码。这个是在用户控件中写的。
现在的问题就是,页面回传的时候,自定义列消失。消失后就取不到绑定的ID了,郁闷死,查了很多资料。如果BindDate()不放在!ispostback里,能解决问题,但效率很低。
我在页面层使用这个控件的时候,以删除功能为例,得执行两遍BindDate().求解决方法。
{
BindDate();
}
public void BindDate()
{
#region 动态生成列前准备工作
BoundField bf = null;//定义列
GridView1.Columns.Clear();//清空列
GridView1.AutoGenerateColumns = false; //自动生成列取消
System.Text.StringBuilder sb = new System.Text.StringBuilder();//将字段数组变成字符串,用于分页传参
#endregion #region 添加自定义列
TemplateField tfColumn = new TemplateField();//实例化自定义列
tfColumn.HeaderText = "选择";
tfColumn.ItemTemplate = new MyTemplate("", DataControlRowType.DataRow, PassID == null ? " " : PassID);
GridView1.Columns.Add(tfColumn);
#endregion #region 通过传的字段名,动态生成普通数据列
for (int i = 0; i < Head.Length; i++)
{
bf = new BoundField();
bf.DataField = Field[i].ToString().Replace('[',' ').Replace(']',' ').Trim();//数据字段
bf.HeaderText = Head[i].ToString();//字段标题
bf.SortExpression = Field[i].ToString();//用于字段正反排序
sb.Append(Field[i].ToString() + ",");//分页传参
GridView1.Columns.Add(bf);//添加字段
}
#endregion}
上面是主要代码。这个是在用户控件中写的。
现在的问题就是,页面回传的时候,自定义列消失。消失后就取不到绑定的ID了,郁闷死,查了很多资料。如果BindDate()不放在!ispostback里,能解决问题,但效率很低。
我在页面层使用这个控件的时候,以删除功能为例,得执行两遍BindDate().求解决方法。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货