【问题标题】:Select action from listbox, perform it on ticked values in GWT从列表框中选择操作,对 GWT 中的勾选值执行它
【发布时间】:2010-10-19 08:33:28
【问题描述】:

这是我的工作代码。我想做的是添加几个复选框,然后从列表框中选择一个选项。在单击应用按钮后,该选项将应用于勾选的值,最好是异步调用。那可能吗?我尝试了一些方法,例如为按钮设置监听器,然后尝试获取勾选的值,然后运行查询,或者只是输出它们。

public void onModuleLoad() {

    VerticalPanel panel = new VerticalPanel();
    Button applyButton = new Button("Apply");
    ListBox box = new ListBox(false);

    CheckBox cb = new CheckBox();
    TabPanel tabpanel = new TabPanel();
    FlowPanel flowpanel;

    flowpanel = new FlowPanel();
    flowpanel.setSize("500px", "250px");
    flowpanel.add(cb);

    tabpanel.add(flowpanel, "All");

    flowpanel = new FlowPanel();
    tabpanel.add(flowpanel, "Active");

    flowpanel = new FlowPanel();
    tabpanel.add(flowpanel, "In-active");

    tabpanel.selectTab(0);
    tabpanel.setSize("500px", "250px");

    box.addItem("Set Active");
    box.addItem("Set In-Active");


    panel.add(box);
    panel.add(applyButton);
    panel.add(tabpanel);

    RootPanel.get().add(panel);

}

谢谢。

【问题讨论】:

    标签: gwt listbox listener


    【解决方案1】:

    类似的东西?收集选定的选项以及选中的项目以将这些值发送到服务器进行处理(在 onClick 方法中执行此操作):

        public void onModuleLoad() {
            final CheckBox[] items = new CheckBox[3];
            items[0] = new CheckBox("item 1");
            items[1] = new CheckBox("item 2");
            items[2] = new CheckBox("item 3");
            final ListBox options = new ListBox();
            Button apply = new Button("apply");
            FlowPanel panel = new FlowPanel();
            panel.add(items[0]);
            panel.add(items[1]);
            panel.add(items[2]);
            panel.add(options);
            panel.add(apply);
    
            options.addItem("option 1");
            options.addItem("option 2");
    
            apply.addClickHandler(new ClickHandler() {
    
                @Override
                public void onClick(ClickEvent event) {
                    String selectedOption = options.getValue(options.getSelectedIndex());
                    System.out.print("Apply " + selectedOption
                            + " to: ");
                    for (CheckBox checkBox : items) {
                        if (checkBox.getValue()) {
                            System.out.print(checkBox.getText());
                        }
                    }
                    System.out.println();
                }
            });
    
            RootPanel.get().add(panel);
        }
    

    或者ListBox 是否应该包含应该应用于选中复选框的操作(看看GWT 的Command 接口)?

    【讨论】:

    • 是的,应该这样做。但是有必要使用数组吗?我的复选框将根据查询结果填充。如果我不使用数组,我如何遍历复选框?
    • 使用列表:LinkedList<CheckBox> items = new LinkedList<CheckBox>();。 foreach 循环的工作方式完全相同。
    猜你喜欢
    • 2017-04-08
    • 2017-03-21
    • 2011-05-22
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2013-07-27
    • 2015-12-02
    相关资源
    最近更新 更多