困绕我很长一段时间的问题!高手看看吧!

redhat_xu 2005-04-18 08:44:45
我遇到了这样的问题:
页面随机生成了许多题目,但是当点保存按钮后题目又重新生成了,使得先前的题目的答案又没有了
那么该怎么办?
我想过使用把随机选题的代码放在if(!IsPostBack)里面后点保存按钮后,不仅没有答案而且连题目也没了。
后来又想到使用缓存技术,也就是Response.Expires 但还是不行,可能是我没有使用正确。

请问这种问题该怎么解决?高手们来看看吧,先谢谢了!分不够再加!
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
redhat_xu 2005-04-19
  • 打赏
  • 举报
回复
那如何使用ViewState变量保存数组!
wwh207 2005-04-18
  • 打赏
  • 举报
回复
把你要保存的答案数据用ViewState变量保存,再重新生成页面时,页面控件就可以从viewState中取出原来的值。
redhat_xu 2005-04-18
  • 打赏
  • 举报
回复
回传后显示的题目是刚进入页面生成的题目!
redhat_xu 2005-04-18
  • 打赏
  • 举报
回复
我要这样的效果:

只要刚进入页面是随机生成的题目,回传不需要使用随机生成题目!
redhat_xu 2005-04-18
  • 打赏
  • 举报
回复
谢谢 hchxxzx(NET?摸到一点门槛) 的回答!

但是不知道该怎么实现,能举个实例看看吗?

小弟这里先谢谢了!
flyye_cs 2005-04-18
  • 打赏
  • 举报
回复
Page_Load(...)
{
if(!IsPostBack)
{
func(); //出题函数
}
}

void func()
{
//如果出题来自数据库,答案也应在数据库中
//如果出题来自本页面,将答案设为全局静态变量放到最前面,在这里给答案赋值
}

void btnSubmit_Click(...) //提交题目检查答案,来自<ASP:Button OnClick.../>
{
//查询数据库检查答案或检查上面已设置好的答案
//正确则再出题func() 直到满足自己的条件即可
}

hchxxzx 2005-04-18
  • 打赏
  • 举报
回复
在Asp.net里我们可以在cs文件里创建一个控件对象,然后把它add到一个parent控件里,从而实现动态地创建页面控件,然而当页面PostBack以后,动态创建的页面控件就会消失掉。但是实际上消失掉的只是页面上的html(因为页面刷新了),而动态创建的页面控件的ViewState却还是会被保存的(这里要注意,你的代码在创建控件对象后必须首先设置id并add到一个parent控件里,之后再设置其它属性,比如数据绑定等,如果在add到一个parent控件前设置了控件属性,那么所设置的属性状态将不被保存在ViewState里)。
所以我们可以自己用代码来维护一个ViewState,该ViewState只用包含控件类型、数量和id的信息,在每次动态创建或删除了控件对象后都更新该ViewState里的信息,然后在每次Page_load的时候根据这个ViewState来创建和PostBack前一样类型、一样数量和一样id的控件,并且不要绑定数据,asp.net会自动把对应viewstate对应的内容填充进对应id的控件,从而实现了动态创建的控件在PostBack后仍然存在并保持状态。

62,074

社区成员

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

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

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

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