Asp.ne页面提交时,动态生成的UserControl消失了

darzui 2005-11-04 05:43:49
项目中有个考试页面,此页面中会显示一些考题,考题都是选择题, 选项用RadioButton的方式呈现。用户选择答案后点击“提交”按钮提交考试。
为了方便其间,我把每个考题做成了Usercontrol,用下面的代码动态加载 private void BindItems
{
//先从数据库中取得考题
for(int i = 0; i < it.Rows.Count; i ++)
{
Control u = LoadControl("UserControl/UCTestItem.ascx");
u.EnableViewState = true;
UCTestItem uc = (UCTestItem)u;
uc.EventID = Request.QueryString["TestEventID"];
uc.Bind(it.Rows[i]);
Panel1.Controls.Add(u);
}
}在Page_Load时间中调用上面的方法:
if(!this.IsPostBack)
BindItems();现在的问题是,当用户点击“提交”按钮后,所有动态加载的UCTestItem控件,都消失了。
这个问题大家是否遇到过,该如何解决?谢谢!
csdn对代码显示支持不好,大家也可以看这里
http://darzui.cnblogs.com/archive/2005/11/04/269045.html
...全文
254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
浩方软件HFWMS 2005-11-22
  • 打赏
  • 举报
回复
学习一下
YapEro 2005-11-22
  • 打赏
  • 举报
回复
动态生成的控件必须自己维护状态。
黑暗的救赎 2005-11-22
  • 打赏
  • 举报
回复
Init完了后,把controls保存在VIEWSTATE或者SESSION里面

当postback的时候就再读出来
shalen520 2005-11-22
  • 打赏
  • 举报
回复
每次pageload都要重新生成,否则控件就会丢失
dapanda 2005-11-22
  • 打赏
  • 举报
回复
把BindItems放在init事件里
从cache里读取数据,如果cache里的数据不存在,则从数据库读取,然后存到cache里保存
可以提高很多性能
gngnandgngn 2005-11-22
  • 打赏
  • 举报
回复
在if(!ispostback())里面访问数据库,然后结果存储到session里面,再每次postback的时候根据session的内容生成动态控件
zhjihui_080220 2005-11-22
  • 打赏
  • 举报
回复
对,把BindItems()放在if(!this.IsPostBack)外面
ljqdu1982 2005-11-04
  • 打赏
  • 举报
回复
没碰到过
darzui 2005-11-04
  • 打赏
  • 举报
回复
if(!this.IsPostBack)去掉会产生另一个问题,就是每次提交页面都会重新生成一次usercontrol。刚才忘了说一点,就是每次考题都是随机抽取的,也就是说BindItems这个方法里面每次都从数据库随机去题。
LoveCherry 2005-11-04
  • 打赏
  • 举报
回复
if(!this.IsPostBack)去掉

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧