删除网格行时触发事件

当子表中的某一行被删除时(即用户点击 delete 按钮),若要触发相应事件,您需要在子表中为 fieldname_remove 事件添加一个处理程序,其中 fieldname 是子表在父表声明中的字段名。

例如:

假设您的父 DocType 名为 Item,它有一个表字段链接到 Item Color DocType,声明名称为 color。

要“捕获”删除事件,请执行以下操作:

frappe.ui.form.on('Item Color', {
 color_remove: function(frm) {
 // You code here
 // If you console.log(frm.doc.color) you will get the remaining color list
 }
);

同样的方法也用于触发添加事件(当用户点击 add row 按钮时):

frappe.ui.form.on('Item Color', {
 color_remove: function(frm) {
 // You code here
 // If you console.log(frm.doc.color) you will get the remaining color list
 },
 color_add: function(frm) {}
});

请注意,处理程序是在子 DocType 表 form.ui.on 上进行的,而不是在父 DocType 上,因此一个最小化的完整示例如下:

frappe.ui.form.on('Item',{
 // Your client side handling for Item
});

frappe.ui.form.on('Item Color', {
 color_remove: function(frm) {
 // Deleting is triggered here
 }
);

处理程序包括:

  1. fieldname_add(添加)
  2. fieldname_move(移动)
  3. fieldname_before_remove(移除前)
  4. fieldname_remove(移除)