Dojo Dijit使用dGrid(dGrid.io)删除行时未分析多个小部件

Dojo Dijit使用dGrid(dGrid.io)删除行时未分析多个小部件,dojo,dgrid,Dojo,Dgrid,我使用dGrid 0.4.1-dev(dGrid.io)和自定义格式化程序(我已经尝试使用自定义渲染器)返回包含Dijit小部件的原始HTMLH,在页面加载期间,所有小部件都已正确解析,但在排序、分页或滚动(OnDemandGrid)时,它完全被破坏 在我的示例中,我在图标上使用工具提示小部件(声明模式,请参见底部的“单元格返回的HTML”) 页面加载时: 滚动、排序、分页后…: 返回单元格的HTML(由格式化程序): 这些小部件正在构建中,并由用户在页面加载时启动。当新的声明性html在页

我使用dGrid 0.4.1-dev(dGrid.io)和自定义格式化程序(我已经尝试使用自定义渲染器)返回包含Dijit小部件的原始HTMLH,在页面加载期间,所有小部件都已正确解析,但在排序、分页或滚动(OnDemandGrid)时,它完全被破坏

在我的示例中,我在图标上使用工具提示小部件(声明模式,请参见底部的“单元格返回的HTML”)

页面加载时:

滚动、排序、分页后…:

返回单元格的HTML(由格式化程序):
这些小部件正在构建中,并由用户在页面加载时启动。当新的声明性html在页面加载后添加到页面时,这些小部件不会自动解析。您需要手动执行此操作

例如,应该可以在网格的
renderRow
函数中手动调用解析器。可以找到一个例子

因此,以下代码可以工作:

   require([
        'dgrid/OnDemandList',
        'dojo/parser'
    ], function (OnDemandList,parser) {
        var list = new OnDemandList({
            collection: myStore, // a dstore collection
            renderRow: function (object, options) {
                var div = document.createElement('div');
                div.appendChild(document.createTextNode(object.myField));
                // only 'parse' new row, not whole document again.
                parser.parse(div);
                return div;
            }
        });
    });
您好:)是的,您是对的,但在用户对列进行排序时不工作。我使用:aspect.before(myGrid,'renderRow',function(){parser.parse(rowElement);});
function (item) {
     return item;
}
   require([
        'dgrid/OnDemandList',
        'dojo/parser'
    ], function (OnDemandList,parser) {
        var list = new OnDemandList({
            collection: myStore, // a dstore collection
            renderRow: function (object, options) {
                var div = document.createElement('div');
                div.appendChild(document.createTextNode(object.myField));
                // only 'parse' new row, not whole document again.
                parser.parse(div);
                return div;
            }
        });
    });