请考虑以下情况:
添加新行时会发生什么?
我们正在观看infragistics.lob-16.1.js
在_dialogOpening()
,第68167行,_originalValues
是通过$.extend(this._originalValues, values, this._originalValues)
计算的,其中values = _getDefaultValues()
或其他字values.id = this._pkVal
。 _pkVal
是一个计数器,每次出现新行时都会递增。
记住这一点,稍后会调用_endEditDialog()
,其中表示用户输入数据的newValues
与输入表单的默认值合并:newValues = this._getNewValuesForRow(colElements)
后跟newValues = $.extend({}, prevValues, newValues)
和prevValues
与上面的_originalValues
相同。
然后调用_addRow()
,调用其运行grid.dataSource.addRow()
并创建一个事务。
我的观点是更新功能会自动为新行和ID = CurrentRowsCount + 1
生成ID。
因此,如果网格包含8条记录,那么新创建的记录将自动分配ID = 9.想象一下,如果现有记录之一的ID = 9,则igGridUpdating' s updateRow(rowId, values)
将更新现有行和新行。我真的想调用这个方法来更新从服务器返回的数据行。
我如何干预整个画面并完成新行的更新?
答案 0 :(得分:4)
自动生成的主键仅用于涵盖最基本的场景。如果您的应用支持删除行,则应使用generatePrimaryKeyValue
事件使其保持唯一,从而对其进行更改。
从服务器接收永久密钥后使用updateRow是可行的方法,但是,请记住从allTransactions
阵列弹出事务,以便更新不会在下一个服务器上转到服务器{ {1}}致电。