2017-02-10 15 views
0

GWT、SmartGwt、Sencha GXTのサイトがあります。最近、更新されたブラウザ(IE、Chrome、Opera、Firefox)では、当サイトのいくつかのボタンが機能しません。フォームがGWTに接続されていないためにフォームの送信がキャンセルされました

は、私はこのようなグリッドとタブがあります。

VisualizadorCartasTab.java

import ... 

public class VisualizadorCartasTab extends Tab { 

private final Canvas     panelTab; 
private final VLayout     layoutGen; 
private GrillaRepositorioXML   grillaRepositorio; 
private SelectItem      cmbPeriodo; 
private SelectItem      cmbNegocio; 
private SelectItem      cmbProceso; 
private IButton       btnBuscar; 
private IButton       btnLimpiar; 
private IButton       btnEliminar; 
private IButton       btnVistoBueno; 
private IButton       btnReprocesar; 
private IButton       btnBuscarrut; 
private TextItem      textItemRutContribuyente; 
private VisualizadorCartasFacadeAsync servicio; 
private DcRepositorioXmlTo    toTempo; 
private CheckboxItem     verXml; 
private SectionStack     secciones; 
private SectionStackSection    seccionBusqueda; 
private VLayout       vlPrincipal; 

... 


public VisualizadorCartasTab(String titulo, final ParametersConfigLetter configLetter) { 

    super(titulo);  

    panelTab   = new Canvas(); 
    layoutGen   = new VLayout(); 
    grillaRepositorio = new GrillaRepositorioXML(); 
    vlPrincipal   = new VLayout(); 

    vlPrincipal.addMember(grillaRepositorio.asWidget());   
    panelTab.addChild(vlPrincipal);  
    hanlders(configLetter); 
    ... 

} 

public void dibujarPantalla() { 
    grillaRepositorio.getLoader().load(); 
    btnLimpiar.setDisabled(false); 
    btnEliminar.setDisabled(false);  
    btnBuscarrut.setDisabled(false); 

} 

private void hanlders(final ParametersConfigLetter configLetter) { 

    .... 

    btnBuscar.addClickHandler(new ClickHandler() { 

      @Override 
      public void onClick(ClickEvent event) { 

         @Override 
         public void onFailure(Throwable caught) { 

         } 

         @Override 
         public void onSuccess(Boolean result) { 

          if(result){ 
           repoXML = new DcRepositorioXmlTo(); 
           repoXML.setRepo_proceso(String.valueOf(cmbProceso.getValue())); 
           repoXML.setProc_periodo(String.valueOf(cmbPeriodo.getValue())); 
           repoXML.setProc_negocio(String.valueOf(cmbNegocio.getValue())); 
           grillaRepositorio.setRepositorio(repoXML);        
           dibujarPantalla(); 
          }else{ 
           SC.say("msg"); 
          } 
         } 

        }); 
       }   
      } 
     }); 
     ... 
} 

}

GrillaRepositorioXML.java

:コードの外観のこのような中

Tab 
    |_Grid 
     |_Rows with buttons(this buttons don't work now) 

public class GrillaRepositorioXML implements IsWidget{ 

private FramedPanel      mainPnl; 
private Grid<DcRepositorioXmlTo>  gridRepositorio;  
private static final RepositorioXMLTo nomProps = GWT.create(RepositorioXMLTo.class); 
private AsyncCallback     callbackGrid; 
private PagingLoader<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>> loader; 
private PagingToolBar     pagingToolBar; 
private VisualizadorCartasFacadeAsync visualizadorCartasFacade = ServiceLocator.getVisualizadorCartasFacade(); 
private DcRepositorioXmlTo    repositorio = new DcRepositorioXmlTo(); 
private final int      PAGE_SIZE = 50; 
private FiltersBean      filters; 
private List<DcRepositorioXmlTo>  selNomina; 
private Boolean       verXml = false; 


@Override 
public Widget asWidget() { 
    return panel(); 
} 

private Widget panel() { 

    IdentityValueProvider<DcRepositorioXmlTo> identity = new IdentityValueProvider<DcRepositorioXmlTo>(); 
    final CheckBoxSelectionModel<DcRepositorioXmlTo> selectionModel = new CheckBoxSelectionModel<DcRepositorioXmlTo>(identity); 

    RpcProxy<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>> proxy = new RpcProxy<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>>() { 

     @Override 
     public void load(PagingLoadConfig loadConfig, 
       final AsyncCallback<PagingLoadResult<DcRepositorioXmlTo>> callback) { 

      filters = new FiltersBean(); 
      filters.setLimit(loadConfig.getLimit()); 
      filters.setOffset(loadConfig.getOffset()); 

      callbackGrid = new AsyncCallback<PagingLoadResult<DcRepositorioXmlTo>>() { 
       @Override 
       public void onSuccess(PagingLoadResult<DcRepositorioXmlTo> result) { 
        pagingToolBar.unmask(); 
        if(result.getData().isEmpty()){ 
         SC.say("No hay resultados para la busqueda"); 
        }              
        callback.onSuccess(result);            
       } 

       @Override 
       public void onFailure(Throwable caught) { 
        pagingToolBar.unmask(); 
        callback.onFailure(caught); 
        SC.warn("Msg" + caught.getMessage()); 
       } 
      };   
      visualizadorCartasFacade.getRepositorioXml(loadConfig, filters, repositorio, callbackGrid); 

     } 
    }; 

    ListStore<DcRepositorioXmlTo> store = new ListStore<DcRepositorioXmlTo>(nomProps.key()); 

    loader = new PagingLoader<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>>(proxy); 
    loader.setRemoteSort(true); 
    loader.addLoadHandler(new LoadResultListStoreBinding<PagingLoadConfig, DcRepositorioXmlTo, PagingLoadResult<DcRepositorioXmlTo>>(store)); 

    pagingToolBar = new PagingToolBar(PAGE_SIZE); 
    pagingToolBar.setBorders(true); 
    pagingToolBar.bind(loader); 

    /** COLUMNAS **/ 
    ColumnConfig<DcRepositorioXmlTo, String> colEstado = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.estado(), 82, "ESTADO"); 
    ColumnConfig<DcRepositorioXmlTo, String> colEnvio = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_tipo_envio(), 82, "TIPO ENVIO"); 
    ColumnConfig<DcRepositorioXmlTo, String> colRut = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_rut(), 82, "RUT CONTRIBUYENTE"); 
    ColumnConfig<DcRepositorioXmlTo, String> colNombre = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_nom_rzsoc(), 82, "NOMBRE"); 
    ColumnConfig<DcRepositorioXmlTo, String> colMonto = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.monto(), 82, "MONTO"); 
    ColumnConfig<DcRepositorioXmlTo, String> colDireccion = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_direccion(), 82, "DIRECCION"); 
    ColumnConfig<DcRepositorioXmlTo, String> colComuna = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_comuna(), 82, "COMUNA"); 
    ColumnConfig<DcRepositorioXmlTo, String> colUnidad = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_unidad(), 82, "UNIDAD"); 

    final ColumnConfig<DcRepositorioXmlTo, String> colPdf = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.pesoPdf(), 90, "VER"); 

    final TextButtonCell button = new TextButtonCell(){ 
     @Override 
     public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) { 
      String style = "style='background-color: " + (Integer.parseInt(value) == 15 ? "red" : "white") + "'"; 
      sb.appendHtmlConstant("<button type='button' "+style+" >VER</button>"); 
     } 

    }; 

    button.setIcon(Icons.INSTANCE.pdf()); 


    button.addSelectHandler(new SelectHandler() { 
     @Override 
     public void onSelect(SelectEvent event) { 

      String carta = ""; 
      String plantilla = ""; 


      carta  = gridRepositorio.getSelectionModel().getSelectedItem().getCarta(); 
      plantilla = gridRepositorio.getSelectionModel().getSelectedItem().getPlantilla(); 
      if(verXml){ 
       dialog(carta); 
      }else{ 
       if(!carta.equalsIgnoreCase("") && !plantilla.equalsIgnoreCase("")){ 
        FormPanel fp = new FormPanel(); 
        com.google.gwt.user.client.Window.alert(GWT.getModuleBaseURL()+"generaPdf"); 
        fp.setAction(GWT.getModuleBaseURL()+"generaPdf"); 
        fp.setMethod(Method.POST); 
        fp.setEncoding(Encoding.MULTIPART); 

        Hidden xmlCarta = new Hidden(); 
        Hidden xmlPlantilla = new Hidden(); 

        xmlCarta.setName("xmlCarta"); 
        xmlCarta.setValue(carta); 

        xmlPlantilla.setName("xmlPlantilla"); 
        xmlPlantilla.setValue(plantilla); 

        VerticalLayoutContainer ct = new VerticalLayoutContainer(); 
        ct.add(xmlCarta); 
        ct.add(xmlPlantilla); 

        fp.add(ct); 
        fp.submit(); 
       }else{ 
        SC.say("No se puede generar documento PDF."); 
       } 
      } 
     } 

    }); 
    colPdf.setCell(button); 

    List<ColumnConfig<DcRepositorioXmlTo, ?>> listColumnCfg = new ArrayList<ColumnConfig<DcRepositorioXmlTo, ?>>(); 

    listColumnCfg.add(selectionModel.getColumn()); 
    listColumnCfg.add(colEstado); 
    listColumnCfg.add(colEnvio); 
    listColumnCfg.add(colRut); 
    listColumnCfg.add(colNombre); 
    listColumnCfg.add(colMonto); 
    listColumnCfg.add(colDireccion); 
    listColumnCfg.add(colComuna); 
    listColumnCfg.add(colUnidad); 
    listColumnCfg.add(colPdf); 
    /** FIN COLUMNAS */ 

    ColumnModel<DcRepositorioXmlTo> cm = new ColumnModel<DcRepositorioXmlTo>(listColumnCfg); 

    gridRepositorio = new Grid<DcRepositorioXmlTo>(store, cm);  
    gridRepositorio.setLoadMask(true); 
    gridRepositorio.setLoader(loader); 
    gridRepositorio.setColumnReordering(true); 
    gridRepositorio.setBorders(true); 
    gridRepositorio.setAllowTextSelection(true); 


    gridRepositorio.setSelectionModel(selectionModel); 
    gridRepositorio.getView().setTrackMouseOver(false); 
    gridRepositorio.getView().setColumnLines(false); 
    gridRepositorio.getView().setStripeRows(true); 
    gridRepositorio.getView().setAutoFill(true); 
    gridRepositorio.getView().setForceFit(true); 

    gridRepositorio.setColumnReordering(true); 
    gridRepositorio.setStateful(true); 


    StringFilter<DcRepositorioXmlTo> stringFilterEstado = new StringFilter<DcRepositorioXmlTo>(nomProps.estado()); 
    StringFilter<DcRepositorioXmlTo> stringFilterTipoEnvio = new StringFilter<DcRepositorioXmlTo>(nomProps.repo_tipo_envio()); 
    StringFilter<DcRepositorioXmlTo> stringFilterRut = new StringFilter<DcRepositorioXmlTo>(nomProps.repo_rut()); 

    GridFilters<DcRepositorioXmlTo> filtrosRepositorio = new GridFilters<DcRepositorioXmlTo>(); 
    filtrosRepositorio.initPlugin(gridRepositorio); 
    filtrosRepositorio.setLocal(true);    
    filtrosRepositorio.addFilter(stringFilterEstado); 
    filtrosRepositorio.addFilter(stringFilterTipoEnvio); 
    filtrosRepositorio.addFilter(stringFilterRut); 


    VerticalLayoutContainer containerSouth = new VerticalLayoutContainer(); 
    containerSouth.add(gridRepositorio, new VerticalLayoutData(1, 1)); 
    containerSouth.add(pagingToolBar, new VerticalLayoutData(1, -1)); 

    FramedPanel southPanel = new FramedPanel(); 
    southPanel.setHeaderVisible(false); 
    southPanel.setBorders(false); 
    containerSouth.getScrollSupport().setScrollMode(ScrollMode.AUTO); 

    southPanel.setSize("784px", "430px"); 
    southPanel.setWidget(containerSouth); 

    return southPanel; 

} 

private void dialog(String sql){ 

     TextAreaItem textAreaItem = new TextAreaItem(); 
     textAreaItem.setValue(sql); 
     textAreaItem.setShowTitle(false); 
     textAreaItem.setWidth(580); 
     textAreaItem.setHeight(370); 
     DynamicForm form = new DynamicForm(); 
     form.setFields(textAreaItem); 

     com.smartgwt.client.widgets.Window w = new com.smartgwt.client.widgets.Window(); 
     w.setTitle("Codigo SQL"); 
     w.addItem(form); 
     w.setWidth(600); 
     w.setHeight(400); 
     w.show(); 

    } 

... 
geters and seters 
... 
} 

古いバージョンのブラウザでは、グリッドのボタンはうまく動作しますが、今は動作しません。

のみ表示]ダイアログ仕事:

... 
if(verXml){ 
       dialog(carta); <----- it works 
      }else{ 
       if(
... 

で何もしないように、フォームの提出を、ブラウザのコンソール上THES errror「フォームが接続されていないため、フォームの送信をキャンセル」apears

Spanglishに申し訳ありませんが、コードは多くの開発者によって長い間維持されていました。

答えて

0

これは、フォームが本文に存在しない場合に発生します。

ここをクリックしてください:Getting Error "Form submission canceled because the form is not connected"

+0

どうすればいいですか?私はVisualizadorCartasTabでフォームを作成し、フォームをGrillaRepositorioXMLオブジェクトに設定してから、必要な文字列でVerticalLayoutContainerを設定しようとしました。しかし、動作しません –

関連する問題