1

dijit.layout.AccordionContainer2つの子コンテナーでを使用するアプリがあります。

マップがロードされると、デフォルトでコンテナの1つが開いています。ボタンがクリックされたときにデフォルトのコンテナを閉じ、2番目のコンテナを開きたいのですが。これを行う方法はありますか?

私はこの方法を試しましたselectChild()が、間違っているに違いありませんか、それとも完全にベースから外れていますか?

私のHTMLを編集する:

<div dojotype="dijit.layout.ContentPane" id="leftPane" region="left" splitter="true">
   <div dojotype="dijit.layout.AccordionContainer">
      <div dojotype="dijit.layout.ContentPane" title="Table of Contents">
           <div id="tocDiv"></div>
      </div>
      <div dojotype="dijit.layout.ContentPane" title="Search Results" id="tab2">
           <div id="datagrid">
                <table data-dojo-type="dojox.grid.DataGrid" data-dojo-id="grid"  id="grid" data-dojo-props="rowsPerPage:'5', rowSelector:'20px'">
                     <thead>
                         <tr>
                            <th field="Parcel Identification Number" width="25%">Parcel ID/th>
                            <th field="Site Address" width="30%"> Address </th>
                         </tr>
                     </thead>
                 </table>
             </div>
           </div>
    </div>
</div>

クリック時に発生する必要のある他のいくつかのことのために作成した関数を介して、クリック時に「tab2」を開こうとしています。

JS:

function doFind() {             
     //Set the search text to the value in the box
     findParams.searchText = dojo.byId("parcel").value;
     grid.showMessage("Loading..."); //Shows the Loading Message until search results are returned.
     findTask.execute(findParams,showResults);
}
4

1 に答える 1

1

この方法を使用しようとしているのは正しい方向に進んでいるようですAccordionContainer#selectChildonClickこれは、ボタンのハンドラーを次のように設定することで簡単に処理できるはずです。

onClick: function(){
    var container = dijit.byId("container");
    container.selectChild("pane2", true); 
}

ここ"pane2で、「」はボタンクリックで開きたいContentPaneのIDであり、ペインの開きをアニメーション化することを示します。このフィドルtrueで例を見ることができます。

于 2013-02-27T13:49:49.900 に答える