【发布时间】:2015-10-27 21:36:42
【问题描述】:
我正在使用一个很棒的 JavaScript UI 库:w2ui。我正在学习 widget Grid 的工作原理。
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在服务器端计算,在客户端用于识别网格记录。
但这仍然不是解决方案,因为当我更改网格的单元格值时(我正在使用inline editing),小部件只会将更改后的值和recid发送到服务器em>,但 不是 复合键。所以我无法识别数据库表行来进行更新。
有人有解决办法吗?
可能是强制将密钥对象发送到服务器的配置?
【问题讨论】:
-
您能否修改服务器代码 API 以适应 recid 处理的变化?