今天试了一下不关闭ViewState和关闭ViewState的区别,结果发现对于页面的控件并没有什么区别,不知道是我测试的有问题还是其他的原因?请教各位大侠!谢谢!
PS:试了一下两种状态下的回发,没看到区别
PS:试了一下两种状态下的回发,没看到区别
解决方案 »
- asp.net中用Flash_player播放监控录像(.264格式)
- 页面中用static保存修改对象,会有问题吗?
- 十分 简单的JQuery问题 .....................................
- 如何让Asp.Net检测到非法访问后不自动要求重新登录
- 验证控件能连数据库吗?
- 应用IIS时出现的问题!请大家帮忙解决
- 当刷新页面时出现“您查看的网页正在试图关闭”,请问怎么处理
- DataGird 如何根据当前指定字段的值,决定每条记录的文本颜色?上次有个方法可是分页后就不对了,急,谢谢了
- 上传图片成功后,见图片名存在数据库。修改数据的时候,需要把图片名再赋给上传的文本框,报错,只读!!!请高手指教
- 在用XmlWriter对象进行写入操作后,调用Close()方法能够放弃对此XML文件的控制权么?
- 网址测试访问速度变慢??????????
- 很急!大家帮我说一下关于if else的一些东西,代码贴出来了,帮我看看。谢谢!
禁用后提交表单将无法得到服务器控件的值
比如一个dropdownlist,你禁用ViewState后试试,提交表单将无法得到其选中的值
{
DropDownList1.Items.Add("添加");
}
如果你是这样的话DropDownList1 就是空的
如果放到外面 DropDownList1不空 但是用户选择的结果无法传递
如果不这么添加在设计状态给DropDownList1赋好值,就对了
但是大多情况下都是从数据库读取数据,所以太过的失去了控件的优势了。
我觉得viewstate最适合关闭的场景还是只是显示用的东西。
不过个人觉得如果禁掉viewstate,
那不就变成asp,而不是asp.net。
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DropDownList1.Items.Add("dd1");
DropDownList1.Items.Add("dd2");
DropDownList1.SelectedIndex = 0;
}
} protected void Button1_Click(object sender, EventArgs e)
{
int i = DropDownList1.SelectedIndex;
i = DropDownList1.Items.Count;
}
1。如果enableviewstate=true,显然是正确的,当button click的时候,IsPostBack=true,不会给DropDownList1再次赋值;;Viewstate="/wEPDwUJMjU2NjMzNzY5D2QWAgIDD2QWAgIFDxBkDxYCZgIBFgIQBQNkZDEFA2RkMWcQBQNkZDIFA2RkMmdkZGTtIIu8ebWaFhzv4IWvgZWfL++vYA==" 2。如果enableviewstate=fasle,Viewstate="/wEPDwUKLTU1NjAxNjM5NWRkwyZK+jXFlf1ONOZERfpuPpvR8sg=" 显然,小了很多。但是,无论用户如何选择,DropDownList1.SelectedIndex=-1,而且DropDownList1是空的。
去掉ViewState以后,楼主可以测试下,如果一个dropdownlist,会有下列行为
1.如果Page_Load这样的事件里面判断了 IsPosback为真的时候,不填充dropdownlist,那么最终会发现dropdownlist是空的2.如果Page_Load不加判断,每次都填充,dropdownlist有数据,但是selectedvalue一直都会是默认的第一个,也就是说你选择的那个根本反应不出来。
楼主你测试下 listbox 呢?
IsPostBack
我们通常都会在第一次加载页面的时候进行一些操作,没有ViewState的话,这里的操作回传后都会失效
介意您去看看:怎么写用户自定义控件,也就是自己写服务器控件,看了你就会知道他们的区别。
其实最简单说他就象一个隐藏域一样,比如说你认为为什么叫服务器控件了,为什么页面刷新后任然
还有值了,为什么html一般的标签刷新后就没有值了!
他们也就是这个区别