动态生成控件 实时保存导致页面占用资源过大!
是这样的,公司需求考试项目,在线考试的时候题目是从数据库抽出来在后台动态生成控件.如果题目过多,动态生成的控件就会很多,导致页面过慢,而且动态生成控件只能写在Page_Load里面,不能写在Page_Load的if (!IsPostBack)里面,否在页面再次加载的时候动态生成控件会没有,由于需求里有一项是考试途中万一断电就要保存这些资料.所以我把每个动态生成得控件家了事件.每触发一个事件的时候就要调用Page_Load里面动态生成控件的代码.所以导致页面资源占用过大,而且触发事件的时候还要做到页面不能刷新.这点我用了AJAX里的UpdatePanel控件.现在我就是想触发动态生成控件事件时,能不能直接触发动态生成控件的事件,不触发Page_Load?或者还有别得办法帮我解决这个问题.
------解决方案--------------------一定要放在同一个页面么?可以分批生成,分页显示,换页时保存
------解决方案--------------------好像直接用Ajax.dll,调用服务器方法不会调用Page_load
------解决方案--------------------不触发postback事件,用ajax保存。
------解决方案--------------------帮顶
------解决方案--------------------up
------解决方案--------------------
------解决方案--------------------
网上有很多的,我用的是Ajax.dll
C# code
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Test_TestAjaxnet));
}
[Ajax.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
public Object GetValue(string newparam)
{
Session.Add("tt", "gg");
return new string[2] { newparam, this.GetTest() };
}
JS:
function onchangeText()
{
var getvalue = Test_TestAjaxnet.GetValue('newparam');
var txt = document.getElementById("Text1");
txt.value = getvalue.value[0] + getvalue.value[1];
}
------解决方案--------------------
通过js端直接传参数调用服务端方法,在服务端方法进行业务处理