急!!!GridView动态生成模版列的问题?
在page_load的事件中动态添加模版列:
public class GridViewTemplate : ITemplate
{
ListItemType templateType;
string columnName;
public GridViewTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case ListItemType.Header:
//lc.Text = " <B> " + columnName + " </B> ";
//container.Controls.Add(lc);
break;
case ListItemType.Item:
DropDownList drr = new DropDownList();
drr.ID = "dropdown ";
drr.AppendDataBoundItems = true;
drr.Items.Add(new ListItem( "-----请选择------ ", " "));
drr.Items.Add(new ListItem( "AA ", "a "));
drr.Items.Add(new ListItem( "BB ", "b "));
drr.Items.Add(new ListItem( "CC ", "c "));
container.Controls.Add(drr);
break;
case ListItemType.EditItem:
//TextBox tb = new TextBox();
//tb.Text = " ";
//container.Controls.Add(tb);
break;
case ListItemType.Footer:
//lc.Text = " <I> " + columnName + " </I> ";
//container.Controls.Add(lc);
break;
}
}
}
//page_load事件中邦定模版列
TemplateField field = new TemplateField();
field.HeaderStyle.Wrap = false;
field.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
field.HeaderText = tab.Rows[0][ "show_name "].ToString();
//field.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, " ");
field.ItemTemplate = new GridViewTemplate(ListItemType.Item, " ");
this.GridView1.Columns.Add(field);
在gridviw翻页时模版列中的控件丢失
这种情况该怎么解决?
[解决办法]
你用Viewstate保存状态.然后在分页里重绑一下.就像分页的自定排序一下.
我是用这种方法..不知还有未更好的!
[解决办法]
动态的重写后就可以了,但静态的模版列控件也会丢,
者是怎么回事呀
又可以解决的方法吗
[解决办法]
你分页这么实现的阿?自定义分页应该没有问题的、
<a href= 'xx.aspx?page=1 '> 1 </a> <a href= 'xx.aspx?page=2 '> 1 </a> ...就不会有问题的
[解决办法]
up