禁用Dojo gridx / Grid中的复选框

时间:2014-04-07 15:10:46

标签: grid dojo dojo.gridx

我有一个gridx / Grid(这是dojo DataGrid和Enhanced Grid的高级和轻量级)。我为此使用了两种布局。一个用于启用状态,另一个用于禁用状态。根据条件,当页面加载时,将使用相应的布局。

每行的复选框(用于行选择的左侧雾中添加的复选框)不是布局的一部分。它们是由窗口小部件代码根据ajax调用返回的数据中的行数动态添加的。

因此,我们需要手动禁用它。但是,我们该怎么做?

1 个答案:

答案 0 :(得分:0)

我想出了如何手动禁用行选择器复选框。我们需要使用grid.select.row.setSelected()方法,其中grid是Grid小部件。

grid.select.row.setSelected(ROWID,BOOLEAN);

第一个arg是必需的,这是该行的idProperty的值。 第二个arg是一个布尔值,可以选择(“true”)或不选择(“false”)。 如果我们没有传递第二个arg,则默认采用false。

grid.select.row.setSelected("1"); =>将禁用id =“1”

行的行选择器chkbox

要再次启用它,

grid.select.row.setSelected("1",true);

截至目前,还没有禁用所有功能的功能。在这种情况下,我们需要逐个遍历所有行。标题中的复选框选择器(用于选择所有行),不是此选项的一部分,因为它没有id。我们需要手动禁用它。标题复选框最初加载而不是数据依赖,因此它可以如下所示: -

query(".gridxRowHeaderHeaderCell").style("visibility","hidden");

另外一个与此有关的黑客: - 如果grid.select.row.enable设置为false,则用户无法选中该复选框,但外观不会显示为已禁用。 看起来很正常,但用户无法选择任何行。

grid.select.row.enable = false;

如果我们想撤销它并使所有行都可选,只需将其重置为true即可。