我使用了一个了不起的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 ,但不是复合键。因此,我无法识别数据库表行以进行更新。
有人有解决方案吗?
可能是强制将密钥对象发送到服务器的配置吗?
答案 0 :(得分:0)
保存将提交更改的记录。但是,您可以覆盖onSave 事件并提交任何你想要的东西。您可以(1)添加它 to grid.postData对象或(2)用$ .ajax()
自己提交
看起来你必须覆盖默认行为才能做你想做的事。