2012-02-08 55 views
1

下面是由我使用ExtJS的創造在我的網頁的鏈接代碼:更改超鏈接文本動態地在ExtJS的

var linkTransValues = { 
    xtype: 'box', 
    id : 'testId', 
    hidden : true, 
    autoEl: { 
     tag: 'a', 
     href: 'javascript:addCategoryValue()', 
     html: 'Add Transition Category' 
    } 
} 

現在我想的是,當用戶選擇值從一個組合框中任何組合框的描述是有這樣的描述應該來在鏈接文字在這裏是我的代碼,我就選擇組合框的呼喚:

transType.on('select', function(cbox, rec, index) {   
    Ext.getCmp("testId").transId = cbox.getValue(); 
    Ext.getCmp("testId").autoEl.html="dropdown description"; 
    Ext.getCmp("testId").show(); 
}); 

問題是,它正在改變HTML值,但新的價值沒有反映其如何只顯示初始值改變鏈接價值。我該如何改變它?

回答

0

嘗試

var linkTransValues = { 
      xtype: 'box', 
      id : 'testId', 
      hidden : true, 
      autoEl: {tag: 'a', id: 'my-element', href: 'javascript:addCategoryValue()', html: 'Add Transition Category'} 
      }; 

    Ext.get('my-element').update('new value'); 
+0

告訴更新它給錯誤不是一個函數 – 2012-02-08 06:34:28

+0

檢查答案的更新版本 – 2012-02-08 06:45:01

0
enter code here 

View File : 

Ext.define('ExtMVC.view.contact.ContactForm', { 
    extend : 'Ext.form.Panel', 
    alias : 'widget.contactform', 
    name : 'contactform', 
    frame : true, 
    title : 'XML Form', 
    items : [ { 
     xtype : 'fieldset', 
     title : 'Contact Information', 
     defaultType : 'displayfield', 
     defaults : { 
      width : 280 
     }, 
     items : [ { 
      label : 'First', 
      xtype : 'hyperLink', 
      itemId : 'CData', 
      id : 'CData', 
      value : 'test' 

     } ] 
    } ] 

}); 


Controller File : 

Ext.define('ExtMVC.controller.Contacts', { 
    extend : 'Ext.app.Controller', 

    views : [ 'contact.ContactForm', 'contact.hyperLink' ], 

    init : function() { 

     this.control({ 
      '[itemId=CData]' : { 
       afterrender : function(cmp) { 
        // debugger; 
        // cmp.down('[itemId=CData]').update('testst'); 
        //Ext.get('CData-btnEl').update('new value'); 
        //alert('rerer'); 
        //$('#CData-btnEl').text('20/10/2013'); 
        // console.log("tsrrtya::" + 
        // cmp.down('[itemId=CData]').update('New label')); 
       }, 
       click : function(cmp) { 
        alert("test"); 
        // debugger; 
        // cmp.down('[itemId=CData]').update('testst'); 
        //Ext.get('CData-btnEl').update('new value'); 
        //cmp.down('[itemId=CData]').setValue('NValue'); 
        // console.log("tsrrtya::" + 
        // cmp.down('[itemId=CData]').update('New label')); 
       } 
      } 
     }); 
    } 

}); 


Dynamic HyperLink File 
Ext.define('ExtMVC.view.contact.hyperLink', { 
    extend : 'Ext.Component', 
    alias : 'hyperLink', 
    xtype : "hyperLink", 
    itemId : "hyperLink", 
    autoEl : 'a', 
    renderTpl : '{label} <a href=\"javascript:;\" id="{id}-btnEl">{value}</a>', 
    config : { 
     text : '', 
     value : '', 
     label : '', 
     handler : function() { 
     } 
    }, 
    initComponent : function() { 
     var me = this; 
     me.callParent(arguments); 

     this.renderData = { 
      text : this.getText(), 
      value : this.getValue(), 
      label : this.getLabel() 
     }; 
    }, 
    onRender : function(ct, position) { 
     var me = this, btn; 

     me.addChildEls('btnEl'); 

     me.callParent(arguments); 

     btn = me.btnEl; 
     me.on('afterrender', function() { }); 
     me.mon(btn, 'click', me.onClick, me); 
    }, 
    onClick : function(e) { 
     var me = this; 
     if (me.preventDefault || (me.disabled && me.getHref()) && e) { 
      e.preventDefault(); 
     } 
     if (e.button !== 0) { 
      return; 
     } 
     if (!me.disabled) { 
      me.fireHandler(e); 
     } 
    }, 
    fireHandler : function(e) { 
     var me = this, handler = me.handler; 

     me.fireEvent('click', me, e); 
     if (handler) { 
      handler.call(me.scope || me, me, e); 
     } 
    } 
}); 
0
var linkTransValues = { 
     xtype: 'box', 
     id : 'testId', 
     hidden : true, 
     autoEl: {tag: 'a', id : 'testId',, href: 'javascript:addCategoryValue()', html: 'Add Transition Category'} 
     }; 

Ext.get('testId').dom.href="your URL or function";