为了使用户可以直接在现有行中插入新的行,网格GridBase.editOptions的insertable需要被指定为true。 而且,为了添加在最后一行之后,appendable需要被指定为true。 两种属性的默认值都是false。
首先,为进行行插入,我们需要将焦点移动至插入位置上的行,并输入insert(mac为ctr+alt+I)键。 在完成输入以后,如同行修改,为提交添加,我们需要使用方向键或鼠标,将焦点移动至其他行。
下列例题中,我们通过DataColumn.defaultValue和defaultExpression属性而设置默认值。
(有关rand运算符等,请参考表达式概述页面。)
完成输入的行数据将会传递至GridDataSet,并且当提交数据行添加时,将会触发GridDataSet.onRowInserted事件。 而且,类似于行修改,在开始插入网格行之前,将会触发GridBase.onInserting事件, 而如果在这个事件处理器中明确返回false,就会无法开始行插入。
grdMain.onInserting = function (grid, rowIndex) {
if ($('#chkEventInsertable').is(':checked')) {
return false;
}
};
如果appendable为true,就可以在最后一行,通过按下方向键而开始行添加。 事件等其他与插入的情况是相同的。
而且,如同调用GridBase.edit而开始行修改的方式,可以通过调用GridBase.insert和GridBase.append,分别开始行插入和添加, 并且当提交行添加并将值传递至数据组而实际创建数据行时,将会触发GridDataSet.onRowInserted事件。
dsMain.onRowInserted = function (ds, row) {
console.log('Data row inserted at ' + row);
};