Показать сообщение отдельно
  #2 (permalink)  
Старый 27.11.2015, 18:05
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Немного улучшил ситуацию. В базовой дропзоне использовал функцию - заглушку:
isPositionValid: function(overRecord, draggingRecords, pos){
		var 
			me = this,
			valid = !Ext.Array.contains(draggingRecords, overRecord) &&
  			( pos === 'before' && !me.containsRecordAtOffset(draggingRecords, overRecord, -1) ||
					pos === 'after' && !me.containsRecordAtOffset(draggingRecords, overRecord, 1)
				);
		// some additional validation here
		return valid && me.validateExtended(overRecord, draggingRecords, pos);
  },
  
  // must be re-defined in shildren
  validateExtended: function(overRecord, draggingRecords, pos){
  	return true;
  },

При подключении плагина заглушку переписываю:
plugins: {
	ptype: 'gridviewdragdrop',
	dragText: '## Drag and drop to reorganize',
	dropZone: {
		validateExtended: function(overRecord, draggingRecords, pos){
			// disable draggind to other parent grous
	  	return overRecord.get('SafetyRoundMeasurePoint_ID') == draggingRecords[0].get('SafetyRoundMeasurePoint_ID');
	  }
	}
},

Так все выглядит лучше, но некоторая засада имеет место по прежнему. Если вдруг обновится фреймворк, и метод positionIndicator будет переписан, то может выйти бяка. Кроме того, остался открытым вопрос о драг тексте: как можно его менять динамически?
Ответить с цитированием