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に申し訳ありませんが、コードは多くの開発者によって長い間維持されていました。
どうすればいいですか?私はVisualizadorCartasTabでフォームを作成し、フォームをGrillaRepositorioXMLオブジェクトに設定してから、必要な文字列でVerticalLayoutContainerを設定しようとしました。しかし、動作しません –