请问asp.net2.0下datagrid的动态添加的模板列如何保持状态? 谢谢
现有一个绑定数据的datagrid我用动态添加的方式增加了一个模板列,并通过InstantiateIn()对其添加HtmlInputText,如下:
public class DataGridTemplate : System.Web.UI.ITemplate
{
ListItemType templateType;
string columnName;
public DataGridTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
// The Hidden Field Built Dynamically
HtmlInputText hiddenShowHideStatus = new HtmlInputText();// HtmlInputHidden();
hiddenShowHideStatus.Value = "none";
hiddenShowHideStatus.ID = "hiddenShowHideStatus";
hiddenShowHideStatus.Visible = true;
switch (templateType)
{
case ListItemType.Item:
case ListItemType.EditItem:
container.Controls.Add(hiddenShowHideStatus);
break;
}
}
}
模板列中的HtmlInputText 是为了记录每一行的状态,none 或 block
当datagrid.databind()时,模板列顺利产生,并利用HtmlInputText 显示行状态:none 或 block
但是,当我再次page_load()页面时,该datagrid的模板列就没有了,需要重新邦定生成,换句话说,我想要记录行的状态(none 或 block)就没有了
我想问的是,我如何才能保持我前一次保存在模板列中的状态?
还有c#应该是引用调用吧,引用对象改变就相当于原对象改变,怎么datagrid被加上了模板列后,再次调用的时候,模板列会消失,我觉得很奇怪,希望大家帮下忙,谢谢 --------------------编程问答-------------------- 在全页刷新,肯定没有的,如果只是回送,那么在每一个事件都应该调用这个动态添加的方法。 --------------------编程问答-------------------- 我再总结一下我的问题:
我的datagrid中其中有一列是动态加载的模板列,如果在PostBack的时候数据被客户端修改了,那么在重新加载的时候,修改就没有用来了,有没有好的方法不重新加载动态列?
请大家帮忙看看 --------------------编程问答-------------------- 整个页面刷新后,动态添加的控件总是重新生成的,要记录每一行有困难哦.. --------------------编程问答-------------------- 我有个想法:
在IsPostBack的时候,把每一行的主键(行号或者自己定义的)和它的状态保存起来,在绑定的时候拿来用..
你看可行不 --------------------编程问答-------------------- 感觉确实比较麻烦。
找个地方保存起来。到时候再给设定上。 --------------------编程问答-------------------- 动态添加的控件是不能保持状态的.
补充:.NET技术 , ASP.NET