NavTabs:单击TabPane时的调用方法

时间:2015-07-02 22:42:14

标签: gwtbootstrap3

我对GwtBootstrap3很陌生,所以不太了解JavaScript函数,但是我在选项卡中使用带有DataGrids的navtabs,并且每当选择选项卡时都会寻找一种调用数据加载方法的方法想要在初始化NavTabs时立即调用所有RPC方法。

这是我的代码:

        <b:NavTabs>
            <b:TabListItem active="true" dataTarget="#tab1" text="Profile" />
            <b:TabListItem dataTarget="#tab2" text="Bundles" />
        </b:NavTabs>

        <b:TabContent>
            <b:TabPane active="true" b:id="tab1">
                <b:Column addStyleNames="{style.spacing}" size="MD_12">
                    <b:Panel>
                        <b:PanelBody ui:field="profile">
                        </b:PanelBody>
                    </b:Panel>
                </b:Column>
            </b:TabPane>

            <b:TabPane b:id="tab2">
                <b:Column addStyleNames="{style.spacing}" size="MD_12">
                    <b:Panel>
                        <b:PanelBody ui:field="bundles">
                        </b:PanelBody>
                    </b:Panel>
                </b:Column>
            </b:TabPane>

和标签:

<b:Well addStyleNames="{style.center-panel}">
    <gwt:DataGrid bordered="true" condensed="true" striped="true"
        hover="true" height="100%" width="100%" ui:field="profileGrid" />
</b:Well>

我尝试在不加载数据的标签页上使用AttachHandler。

有没有办法在选择Bundles选项卡时调用RPC方法(loadBundlesData())而不必事先用NavTabs加载它? 任何帮助/意见表示赞赏。

1 个答案:

答案 0 :(得分:0)

您只需向TabListItem添加点击处理程序:

你的ui.xml中的

<b:NavTabs>
    <b:TabListItem active="true" dataTarget="#tab1" text="Profile" />
    <b:TabListItem ui:field="bundleListItem" dataTarget="#tab2" text="Bundles" />
</b:NavTabs>
你的.java中的

@UiHandler("bundleListItem")
public void onClickBundleListItem(ClickEvent event){
    //do the job here
}

或:

bundleListItem.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        // do the job
    }
});

希望它有所帮助。