【问题标题】:fetching data from combobox list in vaadin从 vaadin 的组合框列表中获取数据
【发布时间】:2014-12-23 16:01:45
【问题描述】:

请更正此代码;

我有一个在 Vaadin 框架中开发并连接到 SQL Server 的组合框。它分别有3个静态值5,3,1年,请帮助我将侦听器添加到这3个选项,并告诉我选择值(EX = 5年)的代码,它应该从过去5年中显示所有值像明智的3年和1年,请帮助我。

comboDateOrigine.addListener(new Property.ValueChangeListener() {

            public void valueChange(ValueChangeEvent event) 
            {
               if (event.getProperty().getValue() != null) 
               {

                    if(event.getProperty().getValue().toString() == "5 Ans"){
                        comboDateOrigine.select(ListOptions.get(0));
                      SELECT DateOrigine from WebProject
                      where DateOrigine = (Current date - (5years ) )

                    }
                    else if(comboDateOrigine.getValue().toString() == "3 years"){
                         comboDateOrigine.select(ListOptions.get(1));
                         SELECT DateOrigine from WebProject
                      where DateOrigine = (Current date - (3 years ) )

                    }
                    else if(comboDateOrigine.getValue().toString() == "1 year"){
                        comboDateOrigine.select(ListOptions.get(2));
                         SELECT DateOrigine from WebProject
                      where DateOrigine = (Current date - (1years ) )

                    }
                }
                else{
                    // Reset the ComboBox
                    comboDateOrigine.setValue(null);
                }
            }
        });
    comboDateOrigine.setImmediate(true);

【问题讨论】:

    标签: sql-server-2008 vaadin


    【解决方案1】:

    首先我建议使用

    comboDateOrigine.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(ValueChangeEvent event) {
            //...
        }
    );
    

    然后要获得选定的值,我不知道这个组合是如何制作的(定制项目,从数据库中获取的项目等)但是

    comboDateOrigine.getValue();
    

    给出用作“id”的属性值。如果您的组合框使用“复杂”项目,也许您可​​以获得更好的属性来进行查询,例如

    Item selectedItem = comboDateOrigine.getContainerDataSource().getItem(comboDateOrigine.getValue());
    Integer year = (Integer)selectedItem.getItemProperty("year").getValue();
    

    有关操作日期的参考,这里有一点 sn-p

    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(Calendar.DATE, 1);
    c.getTime(); //-> gives the date+1 back
    

    关于实际查询,请查看 PreparedStatement 类 & co。 这应该是一个很好的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2021-05-05
      • 2019-06-29
      • 2020-07-11
      • 1970-01-01
      • 2020-10-13
      相关资源
      最近更新 更多