我是Dojo的新手。 我有一个“FullEditable”网格,有很多列,其中一个是一个小部件,它是一个ToggleButton。此网格用于显示购买的详细信息,因此每一行都代表销售的产品。当我点击其中一列内的按钮时,它会启动产品(对话框)浏览器,然后将该产品的数据传递给网格。做了一些工作后,我设法显示按钮,并能够根据从该对话框收到的row.data.FIELD值设置它的标签。Dojo - 如何在row.data.SOMEFIELD值的网格内设置togglebutton的“标签”?
但现在我正在编辑该购买,我需要能够做同样的事情,以便能够将数据从带有数据(“detalle”)(作为它的标签)的预加载数组加载到togglebutton中,但似乎没有任何工作,甚至不直接分配小部件或行数据或任何东西。 这里是我的代码片段:
var grid = this;
var selectedRow = grid.row(i);
var cell = grid.cell(selectedRow, 'Moneda');
selectedRow.Moneda = detalle.MonedaItem; //didn't work
if(cell.row !== null && cell.row !== undefined && cell.row.data !== null && cell.row.data !== undefined)
cell.row.data.Moneda = detalle.MonedaItem; //didn't work
if(cell.element !== null && cell.element !== undefined){
cell.element.innerText = detalle.MonedaItem; //didn't work
cell.element.textContent = detalle.MonedaItem; //didn't work
if(detalle.MonedaItem === 'UF')
cell.element.widget.set('checked', true);
if(detalle.MonedaItem === 'CLP')
cell.element.widget.set('checked', false);
cell.element.widget.set('label', detalle.MonedaItem); //didn't work
cell.element.widget.set('value', detalle.MonedaItem); //didn't work
}
}
每当我设置为通过更改事件的值以“cell.element.widget.set(‘检查’,布尔值);”当它尝试获取单元格但变量为空时,我从编辑器中收到错误消息,因此它崩溃。
小部件row.data中的“标签”和“值”单元格的值是完美设置的,但网格显示的是小部件的“emptyValue”值,而不是实际设置的值。
我共享的代码来了grid.refresh(),这确实什么都没有视觉上后。正如我所说的,数据,集合,单元格和小部件可以获得正确的值,但是在editor.js文件中设置值之后,返回“this”,但“this”的值为“错误”标签。所以我添加了另一个函数来通过cell.row.data.Moneda再次设置该值,但随后该更改再次触发editor.js上的函数,然后再次覆盖该值。我知道我不应该试图通过dom分配价值的暴行,但即使这样也行不通。 – kiluakun
您是否尝试过直接在商店中更改值,然后在网格上调用'refresh'? – Himanshu
是的,即使商店和收藏对象中的值是正确的 – kiluakun