服务器端实现动态添加、删除控件,并且能保存,下次还可再编辑,这样如何实现??
动态添加的部分我已经做好了,是服务器端完成的,还差动态删除部分,看了很多帖子,还是没想法。
要求是这样的:一个添加信息页,能动态添加控件(TextBox),删除控件,页面所有信息都要保存。并且,再下次编辑的时候同样有这样的效果。
遇到的困难是:即使我能动态添加上了删除按钮,如何控制删除我所指定的TextBox。
我的部分代码:
public int iAddCount
{
get
{
return ViewState[ "Counts "]!=null?(int)ViewState[ "Counts "]:0;
}
set
{
ViewState[ "Counts "]=value;
}
}
public void AddControls(int i)
{
TextBox t=new TextBox();
t.ID= "TextBox "+i.ToString();
this.Pnl.Controls.Add(t);
}
private void btnAddCtl_Click(object sender, System.EventArgs e)
{
TextBox t=new TextBox();
t.ID= "TextBox "+Convert.ToString(this.Pnl.Controls.Count+1);
this.Pnl.Controls.Add(t);
iAddCount=this.Pnl.Controls.Count;
}
private void btnSave(object sender,EventArgs e)
{
......
#region 保存电影地址
......
foreach(Control o in this.Pnl.Controls)
{
if(o.GetType()==typeof(TextBox))
{
ObjVodUrlTB vod=new ObjVodUrlTB();
vod.NewsID=NewsID;
vod.MovieUrl=((TextBox)o).Text.Trim();
vod.Save();
}
}
#endregion
}
private void Page_Load(object sender, System.EventArgs e)
{
//动态添加的控件
for(int i=1;i <=this.iAddCount;i++)
{
this.AddControls(i);
}
}
------解决方案--------------------你为什么不把你的动态生成的控件放在DataList里面呢?这样的话就可以通过点选来实现;
还有一种办法就是你在生成TextBox的时候就后面也生成删除按钮;
------解决方案--------------------动态添加控件有关的问题,请参考我的系列文章:
http://www.cnblogs.com/cathsfz/category/76686.html