【问题标题】:smartgwt disable client filtering in gridsmartgwt 在网格中禁用客户端过滤
【发布时间】:2015-07-17 10:52:55
【问题描述】:

我将 SmartGWT listgrid 与数据源一起使用,通常我的过滤会触发服务器请求,但有时网格会尝试在本地过滤数据,然后没有显示数据。不幸的是,我不知道是什么导致了本地过滤。

我开始调试 SmartClient JavaScript 代码并找到了那个方法 即使更改了过滤条件,模块 ISC_DataBinding 中的 isc_ResultSet__willFetchData 有时也会返回 false。我希望此方法在更改过滤条件时始终返回 true。调试 SmartClient 非常困难,因为它被混淆了:(

如何强制 listgrid 在过滤条件更改时始终向服务器发送请求?

列表网格配置:

grid.setShowRecordComponents(true);
grid.setShowRecordComponentsByCell(true);
grid.setWidth100();
grid.setHeight100();
grid.setShowAllRecords(false);
grid.setCellHeight(22);
grid.setAutoFetchData(false);
grid.setCanEdit(true);
grid.setAutoSaveEdits(false);
grid.setShowFilterEditor(true);
Button filterButtonProperties = new Button();
filterButtonProperties.setVisible(false);
grid.setFilterButtonProperties(filterButtonProperties);
grid.setAllowFilterExpressions(true);
grid.setFilterEditorHeight(22);
grid.setDataPageSize(30);
grid.setRowEndEditAction(RowEndEditAction.DONE);
grid.setListEndEditAction(RowEndEditAction.NEXT);
grid.setConfirmDiscardEdits(false);
grid.setUseAdvancedFieldPicker(true);
grid.setAdvancedFieldPickerThreshold(0);
grid.setFieldPickerFieldProperties(new String[] { "frozen", "decimalPrecision" });
grid.setAutoFitFieldsFillViewport(true);
grid.setCanHover(true);
grid.setShowHover(true);
grid.setShowClippedValuesOnHover(true);
grid.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
grid.setDateInputFormat("DMY");
ResultSet resultSetProperties = new ResultSet();
resultSetProperties.setNeverDropUpdatedRows(true);
grid.setDataProperties(resultSetProperties);
grid.setSelectionType(SelectionStyle.SIMPLE);
grid.set    gridComponents(new Object[] { List    gridComponent.FILTER_EDITOR, List    gridComponent.HEADER,
    List    gridComponent.BODY });

【问题讨论】:

    标签: javascript java gwt smartgwt smartclient


    【解决方案1】:

    找到了!我本可以通过用以下位置可用的调试版本替换混淆代码来弄清楚幕后发生的事情:SMARTGWT\com\smartclient\debug\public\sc\ 我必须说它非常有用。 我不得不禁用客户端过滤,因为它与服务器端过滤不同。可以这样做:

    ResultSet resultSetProperties = new ResultSet();
    resultSetProperties.setUseClientFiltering(false);
    grid.setDataProperties(resultSetProperties);
    

    一天的工作和 3 行代码 :) 希望它能帮助某人节省一些时间 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      相关资源
      最近更新 更多