0

我有一个使用带有两个“子容器”的 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

3

你很接近。

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

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

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

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

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

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

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

于 2013-02-26T18:30:49.643 回答