datagrid – dojo dgrid中的小部件

我们的公司已经从dojox / DataGrid搬到了dgrid一段时间了.现在我们发现,dgrid似乎并不支持开箱即用的dijit / dojox小部件.

dojox / DataGrid有一个可以返回窗口小部件的格式化程序().那么那么容易呢! API comparison on GitHub

“dgrid supports formatter functions,but doesn’t support returning a
widget from them .dgrid also has renderCell,which is expected to
return a DOM node. This could ostensibly be used for displaying
widgets (and the editor column plugin does exactly this). Note that
for cell editing purposes,use of the editor column plugin is highly
encouraged.”

怎么样?

我已经尝试使用编辑器插件与{editor:”,editorArgs:”}.这样做会导致一个小部件,但是太限制了.例如,如何渲染一个dijit / Button,其标签是单元格的值?或更复杂的东西,我如何使用(不太已知)的dojox / image / MagnifierLite与< img>从格式化函数生成,src是商店的值?

您可以使用此示例代码
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,Keyboard]))({
            store: myStore,getBeforePut: false,columns: columns
        },"grid");

}

相关文章

我有一个网格,可以根据更大的树结构编辑小块数据.为了更容易...
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以...
我正在使用带有Grails2.3.9的Dojo1.9.DojoNumberTextBox小部...
1.引言鉴于个人需求的转变,本系列将记录自学arcgisapiforja...
我正在阅读使用dojo’sdeclare进行类创建的语法.描述令人困惑...
我的团队由更多的java人员和JavaScript经验丰富组成.我知道这...