2013-07-10 2 views
0

새 항목을 상점에 추가 할 때 Dojo 격자에서 문제점이 있습니다. 는 내가 가지고 :새 항목을 상점에 추가 할 때 Dojo 격자에서 오류가 발생했습니다.

  1. DojoX는/그리드/EnhancedGrid 포함 된 기사
  2. 탭이 기사의 가족을 대표있는 TabContainer를.

탭을 선택할 때마다 그리드를 필터링하여 그 가족을 표시합니다. 지금까지 모든 것이 올바르게 작동합니다.

하지만 새 창을 통해 그리드에 새 기사를 추가 할 수있는 버튼이 있습니다. 표가 필터링되지 않은 경우 문제가 없지만 선택한 탭이있는 경우 오류가 발생합니다. 그리드 어설 션이 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(); 

감사

답변

0

확인 마침내 사실 나는이었다에 디버거 : 즉, 내 실수 덕분에 발견 grid.rowCount + 1을 사용하여 새 항목을 식별 할 수 있지만 탭을 클릭하면 저장소보다 항상 행이 작음 => 기존 행과 동일한 ID => 셈이 실패했습니다. 나는 grid.store._arrayOfAllItems.length으로 바꿨고, 잘 작동한다.

관련 문제