首页 > 解决方案 > Salesforce闪电:treegrid查找取消选择行的ID/数据

问题描述

我正在使用闪电:treegrid 组件。The onrowselection attribute of lightning:treegrid invokes a method on js controller whenever a row is selected/deselected. 我可以使用 getSelectedRows() 方法获取当前选定的行。但是如果我取消选择一行,我将无法在 js 控制器中找到它的 Id 或行数据(已取消选择)。

光环:

<lightning:treeGrid columns="{!v.gridColumns}"
                                data="{!v.gridData}"
                                keyField="idRef"
                                aura:id="productTree"
                                expandedRows="{! v.gridExpandedRows }"
                                onrowselection="{! c.getSelectedRows}"
                                ontoggle = "{!c.handleToggle}"
                                selectedRows = "{!v.selectedIds}"
                                isLoading="{! v.isLoading }"
                                />

JS:

getSelectedRows: function(cmp, event, helper) {
   //get selected rows
    var curRows = event.getParam('selectedRows');

   //how to get the row that is deselected
}

有人可以帮忙吗?

标签: salesforcesalesforce-lightningaura.js

解决方案


Lightning:treegrid 组件没有标准方法来获取取消选择的行列表。该组件还有许多其他限制,使其实际上毫无用处。

我按照以下步骤获取取消选择的行:

  1. 创建一个存储与所有选定行关联的 id 的属性。让我们命名它oldSelectedRows
  2. 然后使用 获取所有当前选定行的列表 cmp.find("aura_id_of_treegrid").getSelectedRows()。让我们来命名它 selectedRows
  3. 找出 oldSelectedRows 和 selectedRows 之间的区别。这会获取您取消选择的项目。

推荐阅读