Dojox.grid 将新项目添加到存储时dojo网格上出错

Dojox.grid 将新项目添加到存储时dojo网格上出错,dojox.grid,Dojox.grid,我在向商店添加新物品时遇到dojo网格上的问题。 我有: 包含项目的dojox/grid/EnhancedGrid 选项卡表示项目族的选项卡容器 每次我选择一个选项卡,它都会过滤网格以显示该族,到目前为止一切正常 但我有一个按钮,可以通过一个新窗口向网格中添加一篇新文章。 如果未过滤网格,则没有问题,但如果选择了选项卡,则会出现错误: 网格断言在itemwritestore中失败 同样的错误在FF和IE上,我在互联网上搜索那个错误,但我并没有发现任何相关的东西 我的代码如果有帮助

我在向商店添加新物品时遇到dojo网格上的问题。 我有:

  • 包含项目的dojox/grid/EnhancedGrid
  • 选项卡表示项目族的选项卡容器
  • 每次我选择一个选项卡,它都会过滤网格以显示该族,到目前为止一切正常

    但我有一个按钮,可以通过一个新窗口向网格中添加一篇新文章。 如果未过滤网格,则没有问题,但如果选择了选项卡,则会出现错误: 网格断言在itemwritestore中失败 同样的错误在FF和IE上,我在互联网上搜索那个错误,但我并没有发现任何相关的东西


    我的代码如果有帮助

                    var grid=parent.registry.byId('lagrid');
            var items=lagrid.store._arrayOfAllItems;
            var item=items[e.rowIndex];
            var lestab=parent.registry.byId( 'TabContainerRayon');
            var tabsel=lestab.selectedChildWidget.id
            var ongletR=tabsel.substring(1,tabsel.length);
            if (grid)
            {
                var storeParent=grid.store;
                var itemsParent=storeParent._arrayOfAllItems;
                for (i=0 ; i< itemsParent.length ; i++)
                {
                    if (itemsParent[i].col17==idLigne)
                    {
                         alert("Article déjà présent");
                        return false;
                    }
                }
                var myNewItem = {
                id: grid.rowCount+1,
                col2:trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col5")),
                col3:undefined,
                col4:undefined,
                col5:trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col6")),
                col6:trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col8")),
                col7:undefined,
                col8: undefined,
                col9: undefined,
                col10: 1,
                col11: undefined,
                col12:trim(lagrid.store.getValue(lagrid.getItem(tabInd[0]),"Col1")),
                col13:trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col2")),
                col14:'<A HREF="javascript:addProduit('+ (grid.rowCount)+');" ><IMG border=0 SRC="/'+CheminBase+'/Flag_White.gif"></A>' ,
                col15: ongletR,
                col16:"<a href=\"javascript:afficheImg("+grid.rowCount+",'"+trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"unid"))+"')\"><img src='/" + CheminBase + "/pictures.png?OpenImageResource' border=0></a>",
                col17:idLigne ,
                col18:trim(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col9"))
                };
    
                parent.PctPrixTolere.push(parseInt(lagrid.store.getValue(lagrid.getItem(e.rowIndex),"Col7")));
                parent.PresenceReleve.push("0");
    }
            // ajoute l'item dans le store
            grid.store.newItem(myNewItem);
            grid.store.save();
            parent.registry.byId('external').hide();
    
    var grid=parent.registry.byId('lagrid');
    var items=lagrid.store.\u arrayOfAllItems;
    var项目=项目[e.rowIndex];
    var lestab=parent.registry.byId('TabContainerRayon');
    var tabsel=lestab.selectedChildWidget.id
    var ongletR=tabsel.substring(1,tabsel.length);
    如果(网格)
    {
    var storeParent=grid.store;
    var itemsParent=storeParent.\u arrayOfAllItems;
    对于(i=0;i


    感谢您的帮助

    好的,多亏了ie调试器,我终于找到了我的错误:) 事实上,我使用了grid.rowCount+1来标识我的新项目,但是如果我单击某个选项卡,我的行数总是少于商店的行数=>与现有行id相同=>断言失败。我将其更改为grid.store.\u arrayOfAllItems.length,效果很好:)