首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

动态添加删除自定义控件的有关问题!帮忙

2012-01-22 
动态添加删除自定义控件的问题!!!各位高手帮忙!大家动态添加的自定义控件 需要有视图状态,不然获取不到控

动态添加删除自定义控件的问题!!!各位高手帮忙!
大家动态添加的自定义控件 需要有视图状态,不然获取不到控件的值! 先看我的代码

protected void Page_Load(object sender, EventArgs e)
  {
  for (int i = 0; i < 5; i++)
  {
  string kjid = "MyControl" + i.ToString();
  Control a = Page.LoadControl("WebUserControl.ascx");
  a.ID = kjid;
  if (ViewState[kjid] != null)
  {
  PlaceHolder1.Controls.Add(a);
  }
  }
  }

下面是动态添加:
  protected void Button1_Click(object sender, EventArgs e)
  {
  for (int i = 0; i < 5; i++)
  {
  string kjid = "MyControl" + i.ToString();
  Control a = Page.LoadControl("WebUserControl.ascx");
  a.ID = kjid;
  if (ViewState[kjid] == null)
  {
  PlaceHolder1.Controls.Add(a);
  ViewState[kjid] = true;
  break;
  }
  }
  }

下面是动态添加的控件全部删除
  protected void Button2_Click(object sender, EventArgs e)
  {
  PlaceHolder1.Controls.Clear();
  for (int i = 0; i < 5; i++)
  {
  string kjid = "MyControl" + i.ToString();
  if (ViewState[kjid] != null)
  {
  ViewState[kjid] = null;
  }
  }
  }

以上代码全部通过 没有错误.功能实现正常!
我的问题是 动态添加的控件 如何单个删除 ?
我在控件中写了:
 protected void Button2_Click(object sender, EventArgs e)
  {
  Page.FindControl("PlaceHolder1").Controls.Remove(this);
  ViewState[this.ID] = null;
  }
控件是可以删除 但是删不了 ViewState中的状态!!

如何才能实现单个删除. !! 其实只要清除掉 控件自身的ViewState就可以了。 不知道怎么些这个!!! 在控件中写
 ViewState[this.ID] = null;
是不能删除的!!希望高手指点!!!在线等





[解决办法]
if(!Page.IsPostBack)
{
for (int i = 0; i < 5; i++) 

string kjid = "MyControl" + i.ToString(); 
Control a = Page.LoadControl("WebUserControl.ascx"); 
a.ID = kjid; 
if (ViewState[kjid] != null) 

PlaceHolder1.Controls.Add(a); 


}

[解决办法]
viewstate是在控件的属性块里写的.
[解决办法]
先加上ispostback试试,然后还有就是viewstate应该在控件的属性块里面写吧?????



[解决办法]
删除按钮

C# code
if(panel1.Controls.Contains(button2))     {             panel1.Controls.Remove(button2);     } 

热点排行