现在是在页面加载之后就生成了一个dataset,然后用不断的用ajax修改dataset的数据,最后才保存进数据库。刚开始我放在ViewState中,试一下ajax居然访问不到;现在放在session中,感觉太占资源了
解决方案 »
- asp.net生成静态页面时为在aspx文件使用的控件却在静态页上不能识别
- .net中的checkBox控件问题
- 我的gridview排序怎么没用
- 最近很迷茫,在这里倒苦水,望各位兄弟进来指正批评。
- 我通过System.Drawing处理的图片怎样让其结果在网页的指定位置显示啊
- 为什么提交RadioButtonList后,返回的总是第一个选项的值?(已经第二贴了,大家帮忙看看)
- treeview的高手请进,提示类的类型与控件类型不兼容,是哪里的问题? 郁闷。。。。。。。
- 有没有人用过FreeTextBox3.0,如何设置它的语言?
- 如何在客户端获得RadioButtonList的值
- **********************关于程序结构设计的方案请教***************************
- 一个Repeater控件,能不能前几列绑定数据源1,后几列绑定数据源2?类推。
- 如何使控件垂直方向中心对齐?
DataSet dsTest = new DataSet(); //声明一个DataSet
if(ViewState["ds"] == null) //第一次执行,ViewState为空
{
DataTable dt = new DataTable();
dt.Columns.Add("col");
DataRow dr = dt.NewRow();
dr[0] = "abc";
dt.Rows.Add(dr);
dsTest.Tables.Add(dt);
}
else //ViewState不为空
{
dsTest = (DataSet)ViewState["ds"]; //提取ViewState中的值
DataRow dr = dsTest.Tables[0].NewRow();
dr[0] = "bcd";
dsTest.Tables[0].Rows.Add(dr);
}
ViewState["ds"] = dsTest; //将新DataSet写人ViewState
Response.Write(dsTest.Tables[0].Rows.Count.ToString());
把以上代码写到一个Button的Click事件里,连续单击Button,可以看见输出的数值不断增加。
[AjaxMethod]
public string GetViewStateValue(string key)
{
if(ViewState[key]==null)
{
return "";
}
return ViewState[key].ToString();
}
然后用ajax访问这样就可以了
所以,我一般用viewstate来保存一个页面里需要持久化的一些全局变量,用session在多个页面之间共享少量数据如状态变量等,用cache来存放比较稳定,而且能为所有用户共享的数据。
哎,看来就用session了,我保存的数据是用户级的。