gpt4 book ai didi

javascript - 如何知道/捕获您所在的特定详细信息网格的详细信息网格 ID? (ag-grid javascript)

转载 作者:行者123 更新时间:2023-11-30 19:25:18 24 4
gpt4 key购买 nike

我有一个主从农业网格。一列有复选框,(checkboxSelection: true)。详细信息网格有一个带有按钮的自定义状态面板。当用户单击任何特定详细信息网格中的按钮时,我不知道如何仅从该特定详细信息网格中获取 SelectedRows。

问题是他们可能会显示/打开多个详细信息,然后遍历每个详细信息网格将包括来自所有打开网格的结果。我试图隔离到用户单击按钮的网格。

我尝试遍历所有显示/打开的详细信息网格以获取详细信息网格 ID。但我没有看到任何信息显示他们点击了哪个按钮。

我尝试在按钮组件中查看参数中是否有任何引用按钮所在的 detailgrid ID 的内容,但我也没有看到任何内容。

这是按钮组件:

function ClickableStatusBarComponent() {}

ClickableStatusBarComponent.prototype.init = function(params)
{
this.params = params;

this.eGui = document.createElement('div');
this.eGui.className = 'ag-name-value';

this.eButton = document.createElement('button');

this.buttonListener = this.onButtonClicked.bind(this);
this.eButton.addEventListener("click", this.buttonListener);
this.eButton.innerHTML = 'Cancel Selected Records&nbsp;&nbsp;<em class="fas fa-check" aria-hidden="true"></em>';
console.log(this.params);

this.eGui.appendChild(this.eButton);
};

ClickableStatusBarComponent.prototype.getGui = function()
{
return this.eGui;
};

ClickableStatusBarComponent.prototype.destroy = function()
{
this.eButton.removeEventListener("click", this.buttonListener);
};

ClickableStatusBarComponent.prototype.onButtonClicked = function()
{
getSelectedRows();
};

下面是循环查找所有打开的细节网格的代码:

function getSelectedRows()
{
this.gridOptions.api.forEachDetailGridInfo(function(detailGridApi) {
console.log(detailGridApi.id);
});

最佳答案

我能够解决这个问题,所以我想我会发布我的答案以防其他人遇到同样的问题。我不确定我采用了最好的方法,但它似乎在我需要的时候起作用。

首先,我还尝试根据文档使用自定义细节单元格渲染器,但最终遇到了同样的问题。我能够在细节 onGridReady 函数中检索到 DetailGridID——但无法弄清楚如何在其他地方使用该变量。

所以我回到上面发布的代码,当单击按钮时,我执行 jquery .closest 以找到最近的具有 row-id 属性(代表 DetailgridID)的 div,然后我使用特定的ID 以获取仅在该详细信息网格中选择的行。

更新的按钮点击代码:

ClickableStatusBarComponent.prototype.onButtonClicked = function()
{
getSelectedRows(this);
};

更新的 getSelectedRow 函数:

function getSelectedRows(clickedBtn)
{
var detailGridID = $(clickedBtn.eButton).closest('div[row-id]').attr('row-id');
var detailGridInfo = gridOptions.api.getDetailGridInfo(detailGridID);
const selectedNodes = detailGridInfo.api.getSelectedNodes()
const selectedData = selectedNodes.map( function(node) { return node.data })
const selectedDataStringPresentation = selectedData.map( function(node) {return node.UniqueID}).join(', ')
console.log(selectedDataStringPresentation);
}

关于javascript - 如何知道/捕获您所在的特定详细信息网格的详细信息网格 ID? (ag-grid javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56971731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com