我正在使用一个很棒的 JavaScript UI 库:w2ui。我正在学习小部件 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在服务器端计算并在客户端用于识别网格记录。
但这仍然不是解决方案,因为当我更改网格的单元格值(我正在使用内联编辑)时,小部件仅将更改的值和recid发送到服务器,而不是复合键。所以我无法识别数据库表行来进行更新。
有人有解决方案吗?
也许是强制将密钥对象发送到服务器的配置?