有一個TextBox控件,將其EnableViewState屬性設為false,在腳本中改變其值,接著用window.event.returnValue=true來提交,請問此時TextBox控件中的值為何會保留下來
解决方案 »
- asp怎么用request.QueryString(“str”)获取英文和中文
- EXCEL,CSV格式的如何导入到sqlserver 2005数据库
- 我一个aspx页面怎么才能让百度查询不到
- [急!!!!]指定的转换无效
- 怎么样得到应用程序的跟目录
- 如何用以C#将多个附件上传至oracle数据库
- TreeView添加checkbox的问题,如何实现父结点级联选中的问题?
- 刚学vs。net没多久,想做一个商店管理项目!请各位多多指教。
- 在C#中怎样定义一个函数的参数是可选的
- 初学ASP.Net,有一地方不懂,请教!!!
- ASP.NET中关于时间循环的问题?
- 使用了lightbox之后,不能再使用其他JS效果了.....请助..
不会。因为此时是PostData即客户端提交的<input type="text" value="...." ...>这里的value起作用,它被覆盖到TextBox控件的Text属性。不论是否关闭EnableViewState,你在服务器端任何一个事件中写代码取得的TextBox的Text最终结果都是客户端提交的值,而并不是ViewState中的值。我重新贴那个帖子中我的回复:
---------------------------------------------------------------------------------------------------实际上那个Text属性此时恰好可以不需要ViewState。当客户端向服务器提交数据,不但提交ViewState,也提交所有控件的值。在服务器端,首先是恢复了ViewState状态,紧接着设置了由客户端传来的值。........(删节一段话).......TextBox被转换为html输出到浏览器端(例如 <input type=text value='1234' />),客户端提交时服务器端实际上会读取这个value并设置到Text属性上。一个控件可能有几十个甚至上百个属性需要ViewState来保存,但是只有一个是用客户端的value来设置的。TextBox的Text恰好是这样既有ViewState又有value,而ViewState和客户端提交值是两个不同的机制,需要分别了解。 这里补充:服务器端不但读取ViewState来得知Text的上一次的值,还要读取value来看看客户端有没有提交新值。如果这两个不一样,就记录下来准备将来出发TextChanged事件。如果二者一样,就什么也不做。因此对于控件大部分状态值只有LoadViewState着一个过程,但是控件还要经历一个LoadPostData这个过程,从而为个别属性再用客户端提交的值覆盖同时判断是否触发xxxxChanged这类事件,这个过程你就还没有理解。当你将EnableViewState设置为false,TextBox已经不知道“上一次输出html时的默认值”了,因此在装载PostData时如果客户端看到的value值不是空串,即使客户端根本没有修改,它也总是触发TextBox的TextChanged事件。