Gau*_*nan 9 dojo datagrid dojox.grid dojox.grid.datagrid dgrid
我们公司从移动dojox/DataGrid到dgrid一段时间回来.现在我们发现,dgrid似乎不支持开箱即用的dijit/dojox小部件.
dojox/DataGrid有一个formatter()可以返回小部件.在那里很容易做到!GitHub上的API比较说
"dgrid支持格式化程序函数,但不支持从它们返回一个小部件.dgrid也有renderCell,它应该返回一个DOM节点.这可能表面上用于显示小部件(编辑器列插件就是这样做的).请注意,出于单元格编辑的目的,强烈建议使用编辑器列插件."
究竟怎么样?
我尝试过使用编辑器插件{editor: ' ', editorArgs:' '}.这确实渲染了一个小部件但限制性太强.例如,如何渲染a dijit/Button,其标签是单元格的值?或更复杂的东西,我怎么使用(鲜为人知的)dojox/image/MagnifierLite与<img>从格式化函数生成与src实体店的存在价值?
小智 14
你可以使用这个示例代码
require(
[
"dgrid/List",
"dgrid/OnDemandGrid",
"dgrid/Selection",
"dgrid/editor",
"dgrid/Keyboard",
"dgrid/tree",
"dojo/_base/declare",
"dojo/store/JsonRest",
"dojo/store/Observable",
"dojo/store/Cache",
"dojo/store/Memory",
"dijit/form/Button",
"dojo/domReady!"
],
function(
List,
Grid,
Selection,
editor,
Keyboard,
tree,
declare,
JsonRest,
Observable,
Cache,
Memory,
Button
) {
var columns = [
{
label:"Actions",
field:"id",
width: "200px",
renderCell: actionRenderCell
}
];
var actionRenderCell = function (object, data, cell) {
var btnDelete = new Button({
rowId : object.id,
label: "Delete",
onClick: function () {
myStore.remove(this.rowId);
}
}, cell.appendChild(document.createElement("div")));
btnDelete._destroyOnRemove = true;
return btnDelete;
}
grid = new (declare([Grid, Selection, Keyboard]))({
store: myStore,
getBeforePut: false,
columns: columns
}, "grid");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7641 次 |
| 最近记录: |