2015-07-01 2 views
1

Я не могу проверить или снять флажок Gwt CheckBoxCell. Он отлично работает в Chrome, но в Mozilla он вообще не работает. Что я плохо делаю? Пожалуйста, предложите. Когда я выбираю selectAllHeader, не могу проверить/снять флажок в mozilla, хотя он работает в chrome.Gwt CheckBoxCell check uncheck issue

DataGridTableRowModel headerRow = dataGridTableRowList.get(0); 
      E12CommonUtils.printOnConsole("IN createTableComponent================="+ headerRow); 
      int width = 50; 

      final MultiSelectionModel<DataGridTableRowModel> multiSelectionModel = new MultiSelectionModel<DataGridTableRowModel>(); 
      this.setSelectionModel(multiSelectionModel,DefaultSelectionEventManager.<DataGridTableRowModel> createCheckboxManager(0)); 

      multiSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() 
      { 

         public void onSelectionChange(SelectionChangeEvent event) 
         { 
          count++; 
          E12CommonUtils.printOnConsole("Inside select : "); 
          Set<DataGridTableRowModel> set = multiSelectionModel.getSelectedSet(); 
          Iterator it = set.iterator(); 
          selectedValues = new StringBuffer(); 
          selectedNames = new StringBuffer(); 
          while (it.hasNext()) 
          { 
           DataGridTableRowModel row = (DataGridTableRowModel) it.next(); 
           E12CommonUtils.printOnConsole("Inside select = "+ row.getCellText(1)); 
           selectedValues.append(row.getCellText(1) + ":"); 
           E12CommonUtils.printOnConsole("AFTER APPENDING selectedValues = "+ row.getCellText(1)); 
           selectedNames.append(row.getCellData(1).getName() + ":"); 
          } 
         } 
        }); 
      E12CommonUtils.printOnConsole("IN $$$$$$$$$$$$$$$$$=================135"); 

      final Column<DataGridTableRowModel, Boolean> checkColumn = new Column<DataGridTableRowModel, Boolean>(new E12CheckBoxCell(false, false)) 
        { 
       @Override 
       public Boolean getValue(DataGridTableRowModel dataGridTRModel) 
       { 
        boolean isSelected = multiSelectionModel.isSelected(dataGridTRModel); 
        E12CommonUtils.printOnConsole("checkColumn isSelected["+ isSelected + "]\tprotect["+ dataGridTRModel.getCellData(0).isProtect() + "]"); 
        getFieldUpdater().update(0, dataGridTRModel, isSelected); // If commented deselect all works 
        return isSelected; 
       } 
      }; 

      checkColumn.setFieldUpdater(new FieldUpdater<DataGridTableRowModel, Boolean>() 
        { 
         @Override 
         public void update(int idx,DataGridTableRowModel dataGridTRModel,Boolean value) 
         { 
          try 
          { 
           CellData cellData = dataGridTRModel.getCellData(0); 
           cellData.setData(String.valueOf(value)); 
           dataGridTRModel.setCellData(0, cellData); 
           multiSelectionModel.setSelected(dataGridTRModel, value); 

          } 
          catch (Exception e) 
          { 
           Window.alert("Exception in checkColumn.setFieldUpdater : "+ e.getMessage()); 
          } 
         } 
        }); 

      CheckboxCell checkAll = new CheckboxCell(); 
//   E12CheckBoxCell checkAll = new E12CheckBoxCell(false, false); 
      Header<Boolean> selectAllHeader = new Header<Boolean>(checkAll){ 
       @Override 
       public Boolean getValue() 
       { 
        E12CommonUtils.printOnConsole("IN getValue()========="); 
        return false; 
       } 
      }; 

      selectAllHeader.setUpdater(new ValueUpdater<Boolean>(){ 
       @Override 
       public void update(Boolean selected) 
       { 
        for (DataGridTableRowModel ele : getVisibleItems()) 
        { 
         E12CommonUtils.printOnConsole("IN update**************"); 
         multiSelectionModel.setSelected(ele, selected); 
        } 
       } 
      }); 

      this.addColumn(checkColumn, selectAllHeader); 
      this.setColumnWidth(checkColumn, 20, Unit.PX); 
      for (int i = 1; i < headerRow.getRowData().size(); i++) 
      { 
       final int index = i; 
       final String colName = headerRow.getCellData(index).getName(); 
       width = 25;// TODO 
       E12CustomColumn column = new E12CustomColumn(index, false); 
       this.setColumnWidth(column, width + "px"); 

       // Add a selection model to handle user selection. 
       ResizableHeader<DataGridTableRowModel> header = new ResizableHeader<DataGridTableRowModel>(colName, this, column) { 
        @Override 
        public String getValue() 
        { 
         return colName; 
        } 
       }; 
       // this.addColumn(column, selectAllHeader,header); 
       // this.addColumn(selectAllHeader, header); 

       this.addColumn(column, header); 
      } 
      dataProvider.addDataDisplay(this); 
      dataProvider.refresh(); 
+0

какую версию GWT опубликовать ур код?. –

+0

Я использую GWT 2.4.0 –

+0

Я помню, что я видел что-то похожее с флажками, хотя это был Хром, который дал мне проблемы. Моя проблема связана с css (щелчок мыши работал, только если я нажимал границы флажков). IIRC, я решил это, заставив использовать свой собственный css для виджета флажка. –

ответ

0

может быть проблема совместимости браузера - мета-тег может помочь вам

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 

Для более подробной информации следуйте ниже URL -

What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?

+0

Метатег в основном мы пишем в jsp ?? Справа –

+0

у вас будет один/несколько файлов html, где вы загружаете и выгружаете все виджеты gwt. там в главном теге у вас будет метатег. Попробуйте это, возможно, это будет –

+0

Попробовали это. Все еще не работает ... –

Смежные вопросы