表单提交已取消,因为表单未在 GWT 上连接



我有一个网站,有GWT,SmartGwt和Sencha GXT。最近使用更新的浏览器(IE,Chrome,Opera,Firefox(,我们网站上的一些按钮不起作用。

我有一个带有如下网格的选项卡:

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

在代码中看起来像这样:

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
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(
...

表单的提交就像什么都不做,并且在浏览器控制台上出现"表单提交因表单未连接而取消"的错误

对不起,西班牙语,但代码被许多开发人员维护了很长时间。

当身体中不存在形式时,就会发生这种情况。

查看此处: 收到错误"表单提交已取消,因为表单未连接">

最新更新