自己定义了一个itemplate,
public class MutiSelectTemplate : ITemplate
{
public MutiSelectTemplate()
{
} #region ITemplate 成员 public void InstantiateIn(Control container)
{
CheckBox checkbox= new CheckBox();
checkbox.ID = "SelectMutiWTD";
container.Controls.Add(checkbox);
} #endregion
}在gridview中动态添加
private void BindGridViewCell(GridView gridView)
{
.....
TemplateField templateField = new TemplateField();
templateField.HeaderText = "选择";
templateField.ItemTemplate=new MutiSelectTemplate();
gridView.Columns.Add(templateField);
}pageload语句
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGridViewCell(GridView1);
//AddTemplateField(GridView1);
}
结果当postback后,itemplate的CheckBox不见了
如果将templateField.ItemTemplate=new MutiSelectTemplate();单独拿出来,放入AddTemplateField(GridView1);函数中,去掉上面Page_Load的注释就可以显示出来了,请问是什么原因???
public class MutiSelectTemplate : ITemplate
{
public MutiSelectTemplate()
{
} #region ITemplate 成员 public void InstantiateIn(Control container)
{
CheckBox checkbox= new CheckBox();
checkbox.ID = "SelectMutiWTD";
container.Controls.Add(checkbox);
} #endregion
}在gridview中动态添加
private void BindGridViewCell(GridView gridView)
{
.....
TemplateField templateField = new TemplateField();
templateField.HeaderText = "选择";
templateField.ItemTemplate=new MutiSelectTemplate();
gridView.Columns.Add(templateField);
}pageload语句
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGridViewCell(GridView1);
//AddTemplateField(GridView1);
}
结果当postback后,itemplate的CheckBox不见了
如果将templateField.ItemTemplate=new MutiSelectTemplate();单独拿出来,放入AddTemplateField(GridView1);函数中,去掉上面Page_Load的注释就可以显示出来了,请问是什么原因???
去掉if (!IsPostBack)
正解!