2010-12-01 4 views
1

私は最初のページ訪問時に基本ExtJS Javascriptを生成するPHP/ExtJSフレームワークを作っています。そして、AJAX呼び出しを介してDOMを操作します。ExtJSで生成されたDOM要素を新しいExtJS要素で置き換える最善の方法は何ですか?

だから、ExtJSで作成した特定のDOM要素を、ExtJSで作成した新しいDOM要素に置き換えることができる必要があります。

次の例では、region_centerのテキストを2つのパネルに置き換えます。

ただし、renderToは要素にのみ追加され、applyToはコンテンツが完全に置き換えられます。 2つ目のパネルは最初のパネルに取って代わります。

ExtJSで生成されたJavascriptを簡単に操作して、画面の領域を新しいコンテンツに置き換えることはできますか?パネルをクリックしてcenter_regionを新しいコンテンツに置き換えるメニューでは、

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
     <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"> 
     <script type="text/javascript" src="ext/adapter/ext/ext-base.js"> 
     </script> 
     <script type="text/javascript" src="ext/ext-all-debug.js"> 
     </script> 
     <script type="text/javascript" src="js/jquery-1.4.4.min.js"> 
     </script> 
     <title>Test of RenderTo</title> 
     <script type="text/javascript"> 
      Ext.onReady(function(){ 
       new Ext.Panel({ 
        id: 'new_content1', 
        renderTo: 'region_center', 
        title: 'the title', 
        margins: '10 10 10 10', 
        html: 'content1 added by extjs' 
       }); 
       new Ext.Panel({ 
        id: 'new_content2', 
        renderTo: 'region_center', 
        title: 'the title', 
        margins: '10 10 10 10', 
        html: 'content2 added by extjs' 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <h1 class="main">Test of renderTo:</h1> 
     <div id="region_center" class=" x-panel x-border-panel" style="left: 220px; top: 43px; width: 1478px;"> 
      <div class="x-panel-bwrap" id="ext-gen9"> 
       <div class="x-panel-body x-panel-body-noheader" id="ext-gen10" style="padding: 10px; overflow: auto; width: 1456px; height: 620px;"> 
        this is the original text and should be replaced 
       </div> 
      </div> 
     </div> 
    </body></html> 

答えて

1

Ext.Containerを拡張するすべてのクラスは(Ext.Panelが含まれている)あなたがそれらを除去するため)(新しいコンポーネントを追加するだけでなく、削除するために使用することができます()メソッドを追加しています。

+0

既存のコンポーネントにアクセスして操作するにはどうすればよいですか? http://stackoverflow.com/questions/4325990/how-can-i-access-other-extjs-objects-from-within-extjs-click-events –

+0

'var panel1 = Ext.getCmp( 'new_content1');'あなたの最初のパネルのハンドルを与えます。しかし、このビデオでは、コンポーネントにアクセスするためのいくつかのより良いエッセイを見ることができます:http://vimeo.com/14816550 – Mchl

0

あなたのコードでは、renderTo 'region_center'を使用しています。 region_centerdivになるはずです。 renderTo: Ext.getBody()またはrenderTo: document.body.を含めると、パネルが追加されます。

関連する問題