论坛首页 Web前端技术论坛

Ext中动态改变控件的readOnly属性

浏览 10108 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-24   最后修改:2009-06-18

Ext 控件的readOnly属性是可以在控件初始化过程中配置的, 但是如果希望在运行时动态更改其readOnly属性怎么办,

例如 textField 控件,Ext2.x 的 API 上 它的方法有setDisabledBoolean disabled  ) : void方法,可以动态更改控件的disabled属性,却没有类似setReadOnly() 方法,我们可以这么做来运行时更改readOnly属性:

 

 

假设 某个textField, 它的 id = 'txt',

 

1. Ext.getCmp('txt').readOnly = false;

结果是这么写虽然可以更改控件的readOnly属性值, 但页面上的控件并没有变的可以修改。

2. 正确方法是这样的:Ext.getCmp("txt").getEl().dom.readOnly = false;

这样就行了。

 

问题虽小, 但是如果遇到却让人很恼火。 不知道为什么Ext不像Disabled一样提供一个setReadOnly()方法。

   发表时间:2009-04-25  
holdbelief 写道

1. Ext.getCmp('txt').readOnly = false;

TextField可没有readOnly属性,所以这个语句并没有起到作用,仅是加上你的自定义属性readOnly

0 请登录后投票
   发表时间:2009-04-27  
TextField有readOnly属性, 没错的
1 请登录后投票
   发表时间:2009-04-29  
这个是以GridPanel为例:
this.editGrid.on("beforeedit", Folder.beforeedit,  this.editGrid );
  
beforeedit : function(editorGridPanel){
      var editorGrid = Folder.editGrid;
              var folderNameValue = editorGridPanel.record.get("folderName");

              var folderNameIndex = editorGrid.getColumnModel().getIndexById("folderName");
             
              if (folderNameValue =='Inbox' || folderNameValue =='Draftbox' || folderNameValue == 'Outbox' || folderNameValue == 'TrashMailbox' || folderNameValue == 'Garbage'){
                    editorGrid.getColumnModel().getCellEditor(folderNameIndex,0)=new Ext.form.TextField({value: folderNameValue,readOnly:true});
                }
    }
1 请登录后投票
   发表时间:2009-04-30  
引用

</head>
<body>
<input type='button' value="button"  onclick="clickButton()" />
</body>
</html>
<script language="javascript" >
var input = new Ext.form.TextField({
width : 200,
renderTo : document.body
})
function clickButton(){
    input.el.dom.readOnly = true;
}
</script>

这样就可以动态的改变readOnly的属性
1 请登录后投票
   发表时间:2009-07-30  
如何更改ComboBox的readonly属性!
1 请登录后投票
   发表时间:2009-07-30  
aother4430 写道
如何更改ComboBox的readonly属性!

如何更改ComboBox的readonly属性!
0 请登录后投票
   发表时间:2009-09-08  
Ext.getCmp("txt").getEl().dom.readOnly = false;

为什么我按照lz的方法提示错误说Ext.getCmp("txt").getEl().dom不是对象呢
1 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics