[英]extjs4 - filter grid drag and drop
我有2個網格,啟用了拖放功能。
在其中一個網格上,我需要檢查掉落的元素並過濾掉其中的一些元素。
我無法弄清楚如何做到這一點。 grid dd插件有2個事件:beforedrop和drop。
在beforedrop事件期間,我可以檢查每個丟棄的記錄是否正常,但是沒有明顯的方法來選擇被刪除的記錄的子集。 我似乎唯一的選擇是,如果我想完全取消丟棄,則返回false - 而我想只丟棄一個選擇的記錄子集。
掉落事件似乎為時已晚。
知道我怎么能這樣做嗎?
好的,我找到了一個解決方法。
想法是替換beforedrop中data參數的records屬性。
( records屬性基本上是網格上放置的模型/記錄數組)
因此,使用此示例配置網格:
viewConfig: {
plugins: {
dropGroup: 'items',
ptype: 'gridviewdragdrop'
},
listeners: {
beforedrop: this.onBeforeDropItem,
scope:this
}
}
beforedrop的處理程序如下所示:
,onBeforeDropItem: function(node, data, overModel, dropPosition, dropFunction, options)
{
var final_records = [];
nrecords = data.records.length;
for(var i=0;i<nrecords;i++)
{
var record = data.records[i];
if (/* your condition goes here */)
{
final_records.push(record);
}
}
data.records = final_records;
}
(在我的情況下,條件是測試記錄是否已經在我的本地網格存儲中,但可能是其他任何東西)
也許我正在重新發明輪子。 有沒有人有更好的解決方案?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.