2011-01-19 50 views
0

我试图改变动态按钮是在面板中的文字:如何动态更改我的布局文本?

我给的初始文本是:var gost = "HPCL Jan 20 Put,40 cents ..";

var bottomdetail = new Ext.Panel({ 
    flex:1, 
    padding: 1, 
    layout : { 
       type: 'vbox', 
       pack: 'center', 
       align: 'stretch' 
      }, 
    stretchX: true, 
    items:[{ 
      xtype: 'button', 
      flex: 1, 
      baseCls: 'round', 
      html: '<table border="0" height="100%" width="100%"><tr><td width="100%" style="color:#fff; padding-left:5px;" valign="middle">'+ gost + '</td><td valign="middle" align="right" style="padding-right:5px;"><img src="resources/Images/rightarrow.png"></img></td></tr></table>', 
      handler: function(){window.location='DetailsPanel.html';} 
      }] 
}); 

这里是我用它来PIONT更改文本:

var shakepanel = new Ext.Panel({  
           layout : { 
              type: 'hbox', 
              pack: 'center', 
              align: 'stretch' 
             }, 
           stretchX: true, 
           flex:1, 
           disable: true, 
           items: [{ 
             xtype: 'button', 
             disable: true, 
             layout: 'fit', 
             ui: 'decline', 
             text: 'SHAKE', 
             flex:1, 
             handler: function(){ 
              gost="ola i changed it"; 
              alert(bottomdetail.getText()); 
              } 
            }] 
         });  

当我点击按钮“SHAKE”的值“GOST”被更新,但如何应用更新的GOST文本到具有在它的按钮bottomdetail面板... ..........

回答

0

分机。 Button对象有一个.setText(newText)方法。因此,像(高转述):

var button = new Ext.Button({ 
    title: 'Text1', 
}); 

var bottomdetail = new Ext.Panel({ 
    items:[button] 
}); 

var shakepanel = new Ext.Panel({ 
    items: [{ 
     xtype: 'button', 
     handler: function() { 
      button.setText('Text2'); 
     } 
    }] 
});  

... 

我不完全知道为什么你正在把整个HTML表格按钮里面,但...希望你的想法。

如果您试图将更改的数据绑定到组件(如按钮或面板),也许在此类任意HTML内,您可以探索tpl选项,该选项将创建一个模板,然后您可以使用.update()

0

用你的布局表中的动态文本添加一个id到TD,比如'id = titleCell'。

然后在更新文本后调用此函数,以删除此单元格中现有的文本节点并添加新的文本节点。

 
function updateTitle() { 
    var titleCell = document.getElementById('titleCell'); 
    var updatedTitleText = document.createTextNode(gost); 

    titleCell.removeChild(titleCell.firstChild); 
    titleCell.appendChild(updatedTitleText); 
} 

可以直接调用它,你更新后的GOST变种

+1

兄弟你可以更具体我尝试使用,但它不是什么都没有做............ – 2011-01-19 11:43:19

+0

你是否也添加一个id到包含文本的单元格? – adamdunne 2011-01-19 14:04:52

0

什么是不顶掉bottomdetail和shakepanel? - 应该是PAPA(更新聊到哥哥总是PAPA)....

  • 在shakepanel - >按钮 - >处理程序:fireEvent( 'gostChanged',GOST)
  • 告诉爸爸听吧(在听众或方法。对)
  • 当钓到PAPA将改变bottomdetail HTML - >按钮(这将是不错的参考:那里更容易获得,而不是Ext.getComp或其他搜索)