我有 4 个启用了拖放插件的网格。它们的初始网格取决于数据库中名为 state_id 的值。
当我将所选行放入新网格时,我会更新 state_id 值,然后告诉它与数据库同步并更新相关项目的值。
这在大多数情况下工作正常。当发生以下情况时,我收到 this URL is undefined 错误
- 用户点击从网格中拖动 A 行 1 到网格 2
- 用户将 A 行从 网格 2 到网格 1
- 错误!网址 未定义。
此错误似乎仅在第一个添加到网格的项目最初来自同一网格时才会发生。
- 用户点击将行 A 从网格 1 拖到网格 2
- 用户点击将行 B 从网格 2 拖到网格 1
- 用户点击将行 A 从网格 2 拖到网格 1
- 按预期工作!
在我的 Controller 中放置事件处理程序:
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();
},
关于导致此问题的原因以及如何解决它的任何想法?
谢谢
最佳答案
我可以建议您使用一个商店而不是三个,并简单地添加三个均等的网格,全部使用相同的商店,但对 state= 进行过滤吗?
这样您就可以简单地更新放置时的状态,刷新两个相关的网格并同步一个商店。
关于javascript - Extjs 同步商店给我一个 url is undefined error under specific conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628558/