控件不管是设置 Enabled="false" 还是ReadOnly="true",后台都取不到前台的值,值为“空”;
在界面视觉上,Enabled="false" 与 ReadOnly="true" 的区别是一个自带背景色,一个没有背景色。这个是对于textbox而言是很明显的。对于DropdownList 有没有背景色就不是那么明显了。至于asp:label 的话,我是还没试过,所以不知道,哈哈哈……
<asp:TextBox ID="txt_MailType" runat="server"></asp:TextBox> <asp:TextBox ID="txt_Remark" runat="server" Enabled="false"></asp:TextBox> <asp:TextBox ID="txt_Remark" runat="server" ReadOnly="true" style="background-color:#999999;"></asp:TextBox>
即便你在浏览器控制台中用js给文本赋值,该值也传不到后台的
$("#txt_MailType").val("789")
在后台也可以添加属性
this.txt_Remark.Enable = false; this.txt_MailType.ReadOnly = true;
也可以这样添加属性滴
this.txt_Remark.Attributes.Add("readonly","true");
然后,我注意了下,运行代码,在浏览器的元素查看器里:
Enabled="false" 相当于input:text 的 disable="disable" ReadOnly="true" 相当于 input:text 的 readonly="readonly"
为啥会这样的,我目前也没深究……