更新 slickgrid 中列标题的内容

问题描述 投票:0回答:2

我在支持多种语言的角度应用程序中使用 slickgrid。当所选语言更改时,如何更新列标题。 我的列定义如下所示,我基本上想要的是网格再次调用 myI18N 来更新列标题。

{ id: "myid", name: myI18nFn('idKey'), field: "myid", width: 100}

我有一个角度事件可以检测更改,并且我可以访问那里的网格对象,我只是不确定我需要做什么才能更新列标题

angularjs slickgrid
2个回答
2
投票

您需要在语言更改时更新

colDef.name
属性,然后触发网格重建标题行(这发生在 SlickGrid 源代码中的
createColumnHeaders
方法中)。最简单的方法是使用
setColumns
调用更新列列表,这会触发整个网格的重新渲染:

function updateColumnHeaders()
{
    var cols = grid.getColumns();
    for(var i = 0, il = cols.length; i < il; i++)
    {
        cols[i].name = myI18nFn(cols[i].id);
    }
    grid.setColumns(cols);
}

0
投票

您还可以使用下一个 slickgrid 方法:

grid.updateColumnHeader(
   columnId: number | string,
   title?: string | HTMLElement | DocumentFragment,
   toolTip?: string
 )

在你的情况下,它看起来像

grid.updateColumnHeader("myid", myI18nFn('idKey'))

© www.soinside.com 2019 - 2024. All rights reserved.