原文发布时间为:2009-10-22 —— 来源于本人的百度文章 [由搬家工具导入]
原因:使用了一个只读的TextBox控件
曾经遇到过这样的问题:使用了一个只读的TextBox控件,但是在后台代码中却怎么也得不到其 Text 属性值。
后来偶然发现了问题所在,请看下面摘自msdn的一段话:
重要事项:
发生回发时,TextBox 控件(其 ReadOnly 属性设置为 true)的 Text 值被发送到服务器,但是服务器不处理只读文本框。这样可以防止恶意用户更改只读的 Text 值。在回发之间,Text 属性的值保留在视图状态中,除非经过服务器端代码修改。
====================解决方案===================
1. 换用别的文本框控件,比如 input 什么的;
2. 不要直接在标记声明中使用readonly属性,改为通过在后台代码中用txtBox1.Attributes["readonly"] = "true"来设置,或js中用document.all("txtBox1").readOnly=true;(没错这样就可以,因为后台认定一个 TextBox 是否只读是在编译时发生的)