GXT - 如何将网格过滤器参数添加到请求URL(获取参数)?
final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, reader) {
@Override
protected Object newLoadConfig() {
BasePagingLoadConfig config = new BaseFilterPagingLoadConfig();
return config;
}
};
=
请求网址:http://localhost/index.php?action = getLines&amp; limit = 10&amp; sortField = null&amp; offset = 0&amp; sortDir = NONE&amp; filters = [com.extjs.gxt.ui.client.data .BaseStringFilterConfig @ 3abbafc7]
filters = [com.extjs.gxt.ui.client.data.BaseStringFilterConfig@3abbafc7] ???
如何为请求网址转换此行?
谢谢!
答案 0 :(得分:1)
听起来像BaseStringFilterConfig中缺少toString方法,以便在您描述时使用它。
确保使用定义toString方法的 BaseStringFilterConfig - 为此,您必须手动覆盖它。
创建一个扩展 BaseStringFilterConfig 类的类,并覆盖toString()方法。
作为一个例子,你可以使用 private static final class BaseStringFilterConfigWithStringRepresentation extends BaseStringFilterConfig {
@Override
public String toString() {
return "[field=" + getField() + "| comparison=" +
getComparison() + " | type=" + getType() + " | value=" +
getValue() + "]";
}
}
小心不要使用逗号作为分隔符,因为过滤器字段已经以逗号分隔列表形式出现。你必须以某种方式在服务器端解析它,然后返回正确的结果。
答案 1 :(得分:0)
在HttpProxy中 有这种方法
protected String generateUrl(C loadConfig) {
if (writer != null) {
return writer.write(loadConfig);
} else {
if (loadConfig == null) {
return "";
}
return loadConfig.toString();
}
}
因此,如果您已使用该方法为HttpProxy定义了DataWriter 如果没有使用toString方法,将使用setWriter。 我相信你需要一个DataWriter - UrlEncodingWriter