Extjs顯示圖片
阿新 • • 發佈:2019-02-15
Extjs並沒有提供直接的元件來顯示圖片。網上通過設定textfield的InputType為Image然後再修改dom物件來實現,其實image的屬性值並沒有包含在Extjs的官方文件當中。可以通過以下的思路實現,更可以進一步擴充套件成自定義元件。推薦的方法如下:
1、首先做一個容器
Js程式碼- {
- xtype: 'box', //或者xtype: 'component',
- width: 100, //圖片寬度
- height: 200, //圖片高度
- autoEl: {
- tag: 'img', //指定為img標籤
- src: 'myphoto.gif' //指定url路徑
- }
- }
這樣就在panel或者其他的容器裡面顯示圖片了
2、圖片的動態更新
Java程式碼- //動態更新只需要獲取到剛才建立的box的dom的src
-
myphoto.getEl().dom.src = newSrc
這樣就實現了顯示與動態更新
方案二:
使用以下擴充套件便可:
Js程式碼程式碼- Ext.form.Myimg = Ext.extend(Ext.BoxComponent, {
- onRender : function(ct, position){
- if(!this.el){
- this.el = document.createElement('img');
- this.el.src = this.src;
-
if(this.forId){
- this.el.setAttribute('htmlFor', this.forId);
- }
- }
- Ext.form.Label.superclass.onRender.call(this, ct, position);
- }
- });
- Ext.reg('myimg', Ext.form.Myimg);
使用:
Java程式碼- new Ext.form.Myimg
- ({
- width : 120,
-
height : 100
- src:'uu.bmp'
- }).render(Ext.getBody());
- //or
- {
- xtype : 'myimg',
- width : 120,
- height : 100,
- src:'uu.bmp'
- }
方案三:
xtype:'textfield',fieldLabel:'圖片',
width:130,height:114,style:'background-image:url(./1.jpg);background-repeat: no-repeat;',readOnly:true