7

皆さん、

JSONStore に裏打ちされたコンボボックス コンポーネントがあります。ストアにロードされたデータは、コンボボックスの値に対して null を返しています。値は int です。JSON デコード プロセスは、null 値をゼロに変換しています。バッキングストアに存在しない pk, zero を見つけようとすると、コンボボックスのレンダリングが失敗します。

data.Field オブジェクトの useNull: config オプションを見つけて、3.3.0 Final にアップグレードし、コンボボックスの int 値を useNull:true に設定しました。残念ながら、これはまったく影響を与えていません。デコードされた値は、まだ null からゼロに変更されています。

JSON フィールドのデータが null のときにフィールドをゼロに設定しない方法についてのアイデアはありますか?

これが何が起こっているかの写真です。data: 値はゼロですが、JSON 値は null です。

ありがとう!

(gah! 評判が 10 未満なので、写真を直接投稿することはできません。ここで確認してください: debug pic )

また、ここに私の店のフィールド構成があります:

  fields: [
        {name:"id", type:"int"},
        {name:"occurenceDate", dateFormat: 'Y-m-d\\TH:i:s', type:"date"},
        {name:"docketNumber", type:"string"},
        {name:"courtLocationId", type:"int", useNull:true},
        {name:"assignedOfficerId", type:"int", useNull:true},
        {name:"primaryIncidentTypeId", type:"int", useNull:true},
        {name:"secondaryIncidentTypeId", type:"int", useNull:true},
        {name:"tertiaryIncidentTypeId", type:"int", useNull:true},
        {name:"incidentLocation", type:"string"},
        {name:"summary", type:"string"},
        {name:"personalItemsSeized", type:"string"},
        "supplements",
        "parties",
        "judgeIds"
    ]
4

4 に答える 4

3

型宣言なしで使用してみてください。convert メソッドを使用することもできます。

{
    name: "primaryIncidentTypeId", 
    convert: function(value, row) {
        return (value == null) ? null : parseInt(value);
    }
}
于 2010-11-02T10:54:57.120 に答える
0

これも私にわかりました。Ext.data.Typesの型変換関数をさらにオーバーライドして、整数型フィールドにnull値を許可することができます。

Ext.data.Types.INT.convert = function(v){
  v = parseInt(String(v).replace(Ext.data.Types.stripRe, ''), 10);
  return isNaN(v) ? null : v;
};
于 2010-12-17T03:12:10.610 に答える
0

コンボ幅について:普段使っている

defaults: {
    anchor: '100%'
}

フォーム宣言で、幅に問題はありません。

他のすべてのメタデータと一緒にサーバー側から変換機能を提供することはできませんか?

そして、私はまだExtJS 3.2を使用しています - 本番システムに新しいバグは必要ありません:)

于 2010-11-04T04:44:19.927 に答える