同步商店的Extjs在特定条件下给我一个url是未定义的错误

Rob*_*ozo 10 javascript extjs extjs4

我有4个网格,启用了拖放插件.它们的初始网格依赖于名为state_id的db中的值.

当我将所选行放入新网格时,我更新state_id值,然后告诉它与db同步并更新相关项的值.

在此输入图像描述

这在大多数情况下都可以正常工作.当发生以下情况时,我得到此URL未定义错误

  1. 用户单击将行A从网格1拖动到网格2
  2. 用户将行A从网格2拖动到网格1
  3. 错误!网址未定义.

当添加到网格中的第一个项目最初来自同一网格时,似乎只会发生此错误.

  1. 用户单击将行A从网格1拖动到网格2
  2. 用户单击将行B从网格2拖动到网格1
  3. 用户单击将行A从网格2拖动到网格1
  4. 按预期工作!

我的控制器中的drop事件处理程序

dropit: function (node, data, dropRec, dropPosition) {
    if (node.dragData.records[0].store.$className == "AM.store.BacklogCards")
    {
        data.records[0].set('state_id', 1);
        this.getBacklogCardsStore().sync();
    }
    else if (node.dragData.records[0].store.$className == "AM.store.InprogressCards")
    {
        data.records[0].set('state_id', 2);
        this.getInprogressCardsStore().sync();
    }
    else if (node.dragData.records[0].store.$className == "AM.store.ReviewCards")
    {
        data.records[0].set('state_id', 3);
        this.getReviewCardsStore().sync();
    }
    else
    {
        data.records[0].set('state_id', 4);
        this.getDoneCardsStore().sync();
    }
    //node.dragData.records[0].store.sync();
},
Run Code Online (Sandbox Code Playgroud)

有关导致此问题的原因和解决方法的任何想法?

谢谢

Mit*_*hon 1

我可以建议您使用一个商店而不是三个,并且只需添加三个相同的网格,所有网格都使用同一商店,但在 state= 上进行过滤?

这样,您可以简单地更新放置状态、刷新两个相关网格并同步一个商店。