0

向商店添加新商品时,我遇到了道场网格上的问题。我有 :

  1. 包含文章的 dojox/grid/EnhancedGrid
  2. 一个标签容器,其中的标签代表文章的系列。

每次我选择一个选项卡时,它都会过滤网格以显示该系列,到目前为止一切正常。

但我有一个按钮,允许通过新窗口将新文章添加到网格中。如果网格未过滤没问题,但如果我选择了一个选项卡,我会收到错误消息: 网格断言在 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();

谢谢你的帮助

4

1 回答 1

0

好的,感谢 ie 调试器,我终于找到了我的错误 :) 事实上,我使用grid.rowCount+1来识别我的新项目,但是如果我点击一个选项卡,我的行数总是少于商店的 => 相同的 id现有行 => 断言失败。我将其更改为grid.store._arrayOfAllItems.length并且效果很好:)

于 2013-07-12T14:28:29.147 回答