将新项目添加到商店时,在dojo网格上出错

时间:2013-07-10 14:37:24

标签: dojox.grid

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

  1. 包含文章的dojox / grid / EnhancedGrid
  2. 一个tabcontainer,其中标签代表文章的系列。
  3. 每次我选择一个标签时,它会过滤网格以显示该系列,到目前为止一切正常。

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

    感谢您的帮助

1 个答案:

答案 0 :(得分:0)

好吧我终于找到了我的错误,感谢ie调试器:) 事实上我使用 grid.rowCount + 1 来识别我的新项目,但是如果我点击一个标签,我的行总是比商店少=&gt;与现有行相同的ID =&gt;断言失败了。我将其更改为 grid.store._arrayOfAllItems.length ,并且工作正常:)