禁用和灰显dojo网格的所有内容

时间:2011-07-04 07:31:12

标签: dojo

好吧,我的应用程序要求我在点击按钮时禁用整个网格。

我尝试使用

var grid = dijit.byId('myGrid'); grid .set('disabled',true); ,但它不起作用。

我基本上需要'灰显'网格的所有内容,这样用户就无法选择任何行。因此,只是改变CSS并没有帮助我。

请回复。

谢谢, 索尼娅

1 个答案:

答案 0 :(得分:1)

我实际上不知道,但我有一种相当可怕的方式自己做。当它被禁用时,我会在网格上创建一个部分透明的叠加层。

所以我将拥有这个CSS:

.gridOverlay {
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
    z-index: 99;
    display: none;
    background: rgba(0,0,0,0.02);
}
.disabledGrid { color: #DDD; }
.disabledGrid .gridOverlay { display: block;  }

我按钮的点击事件将是这样的:

dojo.connect(dojo.byId("btn"), "onclick", function()
{
    //dojo.byId, not dijit.byId, to get the outer DOM node
    var grid = dojo.byId("myGrid");
    if(!dojo.query(".gridOverlay", grid).length)
    {
        dojo.create("div", {"class": "gridOverlay"}, grid);
    }
    dojo.toggleClass(grid, "disabledGrid");
});

就像我说的那样,可怕,但是对于我的使用它实际上就是这样做的。 YMMV:)