w2ui网格与复合密钥数据库表

时间:2015-10-27 21:36:42

标签: mysql datagrid w2ui

我使用了一个了不起的JavaScript用户界面库: w2ui 。我正在学习 widget Grid 的工作原理。

使用唯一的整数ID(recid)标识 Grid 的每一行。如果您的数据库有一个整数作为主键,这是完美的,您可以使用此键,如 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 在服务器端计算,并在客户端用于识别网格记录。

但它仍然不是解决方案,因为当我更改网格的单元格值时(我使用inline editing),小部件只向服务器发送更改后的值和< em> recid ,但不是复合键。因此,我无法识别数据库表行以进行更新。

有人有解决方案吗?

可能是强制将密钥对象发送到服务器的配置吗?

1 个答案:

答案 0 :(得分:0)

来自documentation

  

保存将提交更改的记录。但是,您可以覆盖onSave   事件并提交任何你想要的东西。您可以(1)添加它   to grid.postData对象或(2)用$ .ajax()

自己提交

看起来你必须覆盖默认行为才能做你想做的事。