1

我有一个使用dijit.layout.AccordionContainer带有两个子容器的应用程序。

加载地图时,其中一个容器默认打开。我希望在单击按钮时关闭默认容器并打开第二个容器。知道怎么做吗?

我尝试过使用该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#selectChild方法时走在正确的轨道上。通过如下设置 Button 的处理程序,这应该很容易处理onClick

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

其中"pane2" 是您希望在单击按钮时打开的 ContentPane 的 id,true表示您希望窗格的打开具有动画效果。您可以在this fiddle中看到一个示例。

于 2013-02-27T13:49:49.900 回答