2

私のサーバー コードは、一部の列を 0.0 から 1.0 の比率値として転送します。パーセントでフォーマットして編集する必要があります。サーバー側を変更せずに、JavaScript 側で実行したいと考えています。そのため、カスタム フォーマッタを追加して値を 100 倍すると、表示は期待どおりに機能します。さらに、編集ボタンを押すと、インライン編集ボックスにも値がパーセンテージで表示されます。保存すると問題が発生します-値はフォーマッターでもう一度変換され、10000のようになります.OK、ここで対称が必要なので、値を100で割るだけのアンフォーマッターを作成します.しかし、それも機能しません- エディット コントロールは、私が望んでいたものではない比率として表示するようになりました (ただし、保存は正しく機能するようになりました)。

サーバーコードを変更せずに回避する方法はありますか?

4

2 に答える 2

6

パーセント値として表示される 0.0 から 1.0 などのカスタム タイプのデータを完全にサポートするには、編集および検索を含めて次のように実装する必要があります。

  1. formatter独自の方法でグリッドにデータを表示するように実装します。
  2. unformat「視覚的表現」からデータへのアクセスを許可するように実装します。メソッドは、いくつかの状況で jqGrid によって使用されます (たとえば、フォーム編集の初期化フェーズ中)。
  3. define 、またはカスタムソート関数sorttypeのような互換性のあるタイプのデータである可能性があります。'number'
  4. およびの使用edittype: 'custom'および実装(ドキュメントを参照)。custom_elementcustom_valueeditoptions
  5. との を使用stype: 'custom'して実装custom_elementします。custom_valueeditoptions

場合によっては、ステップの 1 つをスキップすることもできますが、一般的なケースでは、すべてのステップの実装について考える必要があります。上記のどの手順がまだソリューションに実装されていないかを確認する必要があります。

デモは、古い回答別の回答からのデモの変更です。このデモは、あなたの直接の質問に向けられたものではありません。jqGrid でカスタム コントロールを完全に実装できる理由方法を示しています。フォーム編集の機能は、サーバー部分が実装されていないため、デモでは完全には機能しません。必要に応じて、jqGrid でローカル フォーム編集を実装する方法を示す回答のアプローチを使用できます。デモの主な目的を示す必要があるため、コードをより複雑にしたくありません。

于 2012-10-05T10:57:28.873 に答える
1

カスタム編集タイプを優先してアンフォーマッタをスキップできます。これを次のように使用してください。colModel

{ ..., edittype: 'custom', editoptions: { custom_element: function(value, options) { return $('<input type="text" value="' + value + '"/>'); }, custom_value: function(element){ return parseFloat(element.val())/100; }  }}
于 2012-10-05T10:23:35.683 に答える