1

GXT - グリッド フィルター パラメーターをリクエスト URL に追加するにはどうすればよいですか (パラメーターを取得します)。

final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, reader) {  
  @Override  
  protected Object newLoadConfig() {  
    BasePagingLoadConfig config = new BaseFilterPagingLoadConfig();  
    return config;  
  }  
};  

=

リクエストURL:http://localhost/index.php?action=getLines&limit=10&sortField=null&offset=0&sortDir=NONE&filters=[com.extjs.gxt.ui.client.data.BaseStringFilterConfig@3abbafc7]

フィルター=[com.extjs.gxt.ui.client.data.BaseStringFilterConfig@3abbafc7] ???

この行をリクエスト URL に変換するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

あなたが説明したように使用するために、 BaseStringFilterConfig に toString メソッドが欠落しているようです。

toString メソッドを定義するBaseStringFilterConfigを必ず使用してください。そうするには、手動で上書きする必要があります。

BaseStringFilterConfigクラスを拡張し、toString() メソッドをオーバーライドするクラスを作成します。

例として、プライベートな静的最終クラス BaseStringFilterConfigWithStringRepresentation extends BaseStringFilterConfig {

    @Override
    public String toString() {
        return "[field=" + getField() + "| comparison=" + 
                    getComparison() + " | type=" + getType() + " | value=" +
                    getValue() + "]";
    }

}

フィルターフィールドは既にカンマ区切りのリストになっているため、カンマを区切り文字として使用しないように注意してください。何らかの方法でサーバー側で解析してから、正しい結果を返す必要があります。

于 2012-09-06T16:10:03.303 に答える
0

HttpProxyにはこのメソッドがあります

  protected String generateUrl(C loadConfig) {
    if (writer != null) {
      return writer.write(loadConfig);
    } else {
      if (loadConfig == null) {
        return "";
      }
      return loadConfig.toString();
    }
  }

したがって、メソッド setWriter を使用して HttpProxy の DataWriter を定義した場合はそれが使用され、そうでない場合は toString メソッドが使用されます。ここで必要と思われる DataWriter - UrlEncodingWriter があります

于 2013-02-07T23:17:30.097 に答える