如何在点击时切换AccordionPane?

时间:2013-02-26 17:49:51

标签: arcgis dojo

我有一个使用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);
      }

1 个答案:

答案 0 :(得分:3)

你非常接近。

我假设您正在收听自己的按钮点击事件。如果你不这样做,请尽可能发布代码的那一部分。

如果是,那么你需要这样做:

<accordian-container>.selectChild( <pane to open>);

您需要将窗格传递给selectChild方法。

accordion容器是一种堆栈容器,因此本文档应该有所帮助:

http://dojotoolkit.org/reference-guide/1.8/dijit/layout/StackContainer.html

以下是Stackoverflow上几乎相同问题的链接:Whats the best way to programatically open a pane inside Dijit AccordionContainer