0

私は素晴らしい JavaScript UI ライブラリw2uiを使用しています。ウィジェット Gridの仕組みを学んでいます。

グリッドの各行は、一意の整数 ID ( recid ) を使用して識別されます。データベースに主キーとして整数がある場合、これは完璧です。このキーをrecidのように使用できます。しかし、私のデータベース テーブルには、 4 つの列の組み合わせである複合主キーがあります。

最初に解決策を考えました: ハッシュ関数を使用して、4 つの列の値を使用して整数値を生成します。

hash(idA, idB, idC, idD) = recid

サーバーから返される JSON の例:

records: [
   {
      "recid": 565587,
      "key": {
         "idA": "01",
         "idB": "01",
         "idC": "1981",
         "idD": "111"
      },
      "value": 1000
   }
]

recidはサーバーで計算され、クライアント側でグリッド レコードを識別するために使用されます。

グリッドのセル値を変更すると (インライン編集を使用しています)、ウィジェットは変更された値とrecidのみをサーバーに送信し、複合キーは送信しないためです。そのため、更新を行うためのデータベース テーブルの行を特定できません。

誰かが解決策を持っていますか?

おそらく、キーオブジェクトをサーバーに強制的に送信するための構成でしょうか?

4

1 に答える 1

0

ドキュメントから:

保存すると、変更されたレコードが送信されます。ただし、 onSave イベントを上書きして、必要なものを送信できます。(1) grid.postData オブジェクトに追加するか、(2) $.ajax() を使用して自分で送信できます。

必要なことを行うには、デフォルトの動作をオーバーライドする必要があるようです。

于 2015-10-27T22:51:08.603 に答える