2017-07-13 33 views
1

如何在Itemselector中禁用項目(請參閱附件)?我想在將項目移動到目標字段時禁用源字段中的某些項目。你能幫我解決這個問題嗎? ATTACHMENT - Image拖放到項目選擇器extJS

我搜索了很多並且應用了所有可能的東西。我發現不可能。

由於默認情況下沒有選項可以禁用(據我所知),我將刪除列表中的項目並在需要時再次添加。我在這裏有一個疑問。用戶可以從左側拖動並將其放在右側,或者他可以從右側拖動並將其放到左側。如何知道他在哪裏拖?有沒有任何方法或功能來確定源位置?

回答

0

不幸的是需要相當多的手動工作,因爲ExtJS不支持在網格,組合框等中禁用記錄。

我已經描述了here如何創建一個禁用記錄的組合框。由於組合框和項目選擇器都依賴於它們引擎蓋下的boundlist,這一點很方便。

正如你可以在ItemSelector的源代碼中找到,它有兩個屬性,fromFieldtoField,其中包含兩個multiselect組件。您可以將活動附加到這些列表或其各自的boundlist

快速撥弄它展示瞭如何變灰禁用的元素,以及如何防止禁用的元素的拖/放:https://fiddle.sencha.com/#view/editor&fiddle/2382

現在缺少的是該按鈕不檢查記錄是否被禁止加入之前,必須重寫ItemSelector的onAddBtnClick方法。如果從ItemSelector派生一個新的自定義組件,那麼這比在我的Quick and Dirty小提琴中要容易得多。所以我強烈建議你定義你自己的從ItemSelector派生的自定義組件。