0

我对 GwtBootstrap3 很陌生,所以对 JavaScript 函数不太了解,但我在选项卡中使用带有 DataGrids 的 navtabs 并寻找一种在选择选项卡时调用数据加载方法的方法,因为我不想初始化 NavTab 时立即调用所有 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。

是否有任何方法可以在选择“捆绑包”选项卡且不必提前加载NAVTAB时调用RPC方法(LoadBundlesData())?任何帮助/意见表示赞赏。

4

1 回答 1

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
    }
});

希望能帮助到你。

于 2015-12-18T08:58:10.693 回答