fnCreateAndUpdateField = function(oConditionGrid, oCtrl, index) {
			var sOldValue = oCtrl.getValue ? oCtrl.getValue() : "";

			var ctrlIndex = oConditionGrid.indexOfContent(oCtrl);

			// we have to remove the control into the content with rerendering (bSuppressInvalidate=false) the UI,
			// otherwise in some use cases the "between" value fields will not be rendered.
			// This additional rerender might trigger some problems for screenreader.
			oConditionGrid.removeContent(oCtrl);
			//oConditionGrid.removeAggregation("content", oCtrl, true);

			if (oCtrl._oSuggestProvider) {
				oCtrl._oSuggestProvider.destroy();
				oCtrl._oSuggestProvider = null;
			}
			oCtrl.destroy();
			var fieldInfo = this._aConditionsFields[index];
			oCtrl = this._createValueField(oCurrentKeyField, fieldInfo, oConditionGrid);
			oConditionGrid[fieldInfo["ID"]] = oCtrl;

			oConditionGrid.insertContent(oCtrl, ctrlIndex === -1 ? oConditionGrid.indexOfContent(oConditionGrid.operation) + 1 : ctrlIndex);

			var oValue, sValue;
			if (oConditionGrid.oType && sOldValue) {
				try {
					oValue = oConditionGrid.oType.parseValue(sOldValue, "string");
					oConditionGrid.oType.validateValue(oValue);

					sValue = oConditionGrid.oType.formatValue(oValue, "string");
					if (sValue && sValue.toUpperCase && this.getDisplayFormat() === "UpperCase") {
						sValue = sValue.toUpperCase();
					}

					oCtrl.setValue(sValue);
				} catch (err) {
					var sMsg = err.message;
					this._makeFieldValid(oCtrl, false, sMsg);
					oCtrl.setValue(sOldValue);
				}
			}
		}
creates the Value1/2 fields based on the KeyField Type

@private
@param {sap.ui.layout.Grid} oTargetGrid the main grid
@param {sap.ui.layout.Grid} oConditionGrid Grid which contains the KeyField control which has been changed