首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >smart gwt入门

smart gwt入门
EN

Stack Overflow用户
提问于 2011-05-04 23:31:38
回答 1查看 3.6K关注 0票数 1

我正在开发一个使用smart gwt 2.4的小型应用程序。我选择了smart gwt,而不是其他特定于html的RIA,因为它有丰富的用户界面,并避免了跨浏览器的问题。我的应用程序中有2个页面。最初,用户在页面1中输入的详细信息用于获取必须在页面2中显示的数据,从那时起,必须进行的任何更改都可以在页面2本身中进行。用户不需要返回到页面1来获取新的数据集。1)现在,如何在页面之间导航。我已经将这些页面定义为两个独立的模块。我需要将数据从页面1传递到页面2。有没有有效的方法? 2)在我的一个页面中,我定义了两个自动完成组合框。其中一个组合框的数据将在加载时获取,第二个组合框的数据取决于第一个组合框的值。我尝试为第一个组合框添加change和changed事件侦听器,但每种字母类型都会触发这两个事件。一旦用户选择了值,我就需要获取数据。

代码语言:javascript
复制
public void onModuleLoad() 
{ 
        final ComboBoxItem category = new ComboBoxItem("categoryName", "Category");  
        category.setTitle("Select");  
        category.setChangeOnKeypress(false) ;
        category.setType("comboBox");  
        category.setWidth(250);
        category.setIcons(icon);
        category.setChangeOnKeypress(false);
        final ComboBoxItem subCategory = new ComboBoxItem("subCategoryName", "Sub Category");  
        subCategory.setTitle("Select");  
        subCategory.setType("comboBox");  
        subCategory.setWidth(250);
        subCategory.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler()
        {
            @Override
            public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) 
            {
                    // call to servlet[url] to get the sub categories for the selected category.
                    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, "url"+ selectedCategoryName);
                    try {
                        requestBuilder.sendRequest(null, new RequestCallback() {

                            @Override
                            public void onResponseReceived(Request request, Response response) 
                            {
                                   String xmlText = response.getText();
                                   // Code to handle the received response.
                            }

                            @Override
                            public void onError(Request request, Throwable exception) 
                            {
                                exception.printStackTrace();

                            }});
                    } catch (RequestException e) {
                        e.printStackTrace();
                    }
                    catch (Exception e) {
                        e.printStackTrace();
                    }


            }
        });
        category.addChangeHandler(new ChangeHandler() 
        {
            @Override
            public void onChange(ChangeEvent event) 
            {
                if(null!=event.getValue() && event.getValue()!="")
                {
                    selectedCategoryName = event.getValue().toString();
                    System.out.println(selectedCategoryName);
                }
            }
        });
}

这里我有一个组合框类别,它的值将在加载时获取。当用户通过在组合框中键入来选择类别时,该控件通过在下拉列表中显示匹配值来提供帮助。每按一次键,事件就会触发一次。我已经添加了一个syso来打印键入的值。我需要抓取子类别时,只有当用户完成选择的类别。

任何指针都会非常有用。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-05 14:20:11

关于你的第二个问题:根据你的需要,我认为你可以按照这个link实现模块。或者,如果您想通过处理更改事件来自己实现它,要在每次按键时停止触发更改事件,您可以使用以下命令:

代码语言:javascript
复制
comboBoxItem.setChangeOnKeypress(false);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5885936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档