禁用DOJO/Gridx网格中的行

禁用DOJO/Gridx网格中的行,grid,dojo,dojo.gridx,Grid,Dojo,Dojo.gridx,我在Gridx中创建了一个网格,其中列出了一群用户。单击网格中的某一行或该行的任何部分时,将弹出一个对话框,显示有关该用户的其他信息以及可以为该用户执行的操作禁用用户、忽略用户等-从弹出窗口中选择其中一个选项时,我想禁用该行。获取行的逻辑等等。我可以处理,但我不知道如何使网格行实际显示为禁用,以及如何使该行不再可单击 有没有一个简单的方法可以做到这一点?如果您不熟悉gridx,那么也欢迎使用适用于EnhancedGrids或其他Dojo网格的解决方案 好了,现在我有了更多的信息,这里有一个解决方

我在Gridx中创建了一个网格,其中列出了一群用户。单击网格中的某一行或该行的任何部分时,将弹出一个对话框,显示有关该用户的其他信息以及可以为该用户执行的操作禁用用户、忽略用户等-从弹出窗口中选择其中一个选项时,我想禁用该行。获取行的逻辑等等。我可以处理,但我不知道如何使网格行实际显示为禁用,以及如何使该行不再可单击


有没有一个简单的方法可以做到这一点?如果您不熟悉gridx,那么也欢迎使用适用于EnhancedGrids或其他Dojo网格的解决方案

好了,现在我有了更多的信息,这里有一个解决方案:

在Grid小部件内部或其父代码中保留一个到目前为止已禁用的所有行的列表。然后在onRowClick侦听器上,我将编写如下代码:

on(grid, "onRowClick", function(e) {
    if(disabledRows[rowIndex]) {
        return;
    }

    // Do whatever pop up stuff you want and after
    // a user selects the value, you can "disable"
    // your row afterwards by adding it to the disabled
    // list so that it can no longer be clicked on.

    var rowIndex = e.rowIndex;
    disabledRows[rowIndex] = true;

    // This is just some random class I made up but
    // you can use css to stylize the row however you want
    var rowNode = e.rowNode;
    domClass.add(rowNode, "disabled");

});

注意,domClass是我命名的dojo/dom类。希望这有帮助

这可能不是你想要的: 如果您想通过自己的filterfunction隐藏一行或多行,您可以将自己的类添加到DOM中的这些行中,以用于NodeDisplay。这里我向您展示了一个函数,用于仅显示那些在可选择字段/列中具有过滤器列表中的值的行

CSS:

因此,例如,我可以在此调用中仅显示myState为3或4的条目:

hideRowFilter(gridId, 'myState', [3, 4]);

请注意,domClass就是我命名的dojo/domClass

您是如何读取该行的?您正在收听onRowClick事件吗?你所说的“残疾”是什么意思?是的,我正在收听onRowClick事件。当我说“显示为禁用”时,我的意思是,它应该看起来像它的禁用状态——像它的灰色或褪色状态,像一个按钮看起来是如何褪色的——你不能单击它。
.noDisplay { display: none; }
hideRowFilter(gridId, 'myState', [3, 4]);