我正在从VS2003
转换为VS2005
,并且作为转化的一部分,我需要更改我们当前为ReadOnly
控件设置textbox
属性的方式
之前我们有以下代码:
private void EnableHistory(bool state)
{
TextBox itbNewHistory = UltraWebTab1.FindControl("tbNewHistory") as TextBox;
if( itbNewHistory != null )
{
itbNewHistory.Enabled = state;
itbNewHistory.ReadOnly = ! state;
}
}
新代码是:
private void EnableHistory(bool state)
{
TextBox itbNewHistory = UltraWebTab1.FindControl("tbNewHistory") as TextBox;
if( itbNewHistory != null )
{
itbNewHistory.Enabled = state;
string hSwitch = Convert.ToString(!state);
itbNewHistory.Attributes["readonly"] = hSwitch;
}
}
另外,我从ReadOnly = "true"
代码
asp.aspx
属性
使用新代码时,ReadOnly
属性始终为true
。
为什么会发生这种情况,我该如何解决呢?
谢谢
答案 0 :(得分:1)
它总是只读的原因是因为HTML的工作方式。
在HTML中,仅仅“readonly”(或“禁用”)属性的存在使其成为只读,即使它显示readonly="false"
,它仍然是只读的,因为存在readonly属性。
如果您不希望它只读取,那么您必须删除该属性(如果存在),或者如果不存在则不添加该属性。此外,readonly属性的实际值应该只读:readonly="readonly"
不是true或false。
itbNewHistory.Attributes.Remove("readonly");
if(state)
itbNewHistory.Attributes.Add("readonly", "readonly");
答案 1 :(得分:0)
尝试以下可能有帮助
rohSolutions.Attributes.Remove("ReadOnly");
itbNewHistory.Attributes.Add("ReadOnly", hSwitch.ToString());