[FLEX] Using NumericStepper in DataGrid

I have this code for uploading files to a PHP-script. It works fine when I place my NumericStepper(id=“sida”) outside the DataGrid but when I try to put it inside, Flex can’t find the property “sida”. What code goes where to solve this, anyone?


<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="*" headerHeight="8"
	layout="vertical" width="100%" minWidth="400" height="100%" minHeight="200"
	borderColor="#F1F1F1" themeColor="#A7A7A7" color="#000000" backgroundColor="#F1F1F1" creationComplete="initCom();">
	
	<mx:Metadata>
		[Event(name="uploadComplete", type="flash.events.Event")]
		[Event(name="uploadProgress", type="flash.events.ProgressEvent")]
		[Event(name="uploadCancel", type="flash.events.Event")]
		[Event(name="uploadIOError", type="flash.events.IOErrorEvent")]
		[Event(name="uploadSecurityError", type="flash.events.SecurityErrorEvent")]
	</mx:Metadata>

	<mx:Script>
		<![CDATA[
			import mx.controls.*;
			import mx.managers.*;
                        import mx.events.*;
			import flash.events.*;
			import flash.net.*;
			import mx.collections.ArrayCollection;
			
			//Vilken sida
			[Bindable]
			private var value:Number;
			
			private var _strUploadUrl:String;
			private var _refAddFiles:FileReferenceList;	
			private var _refUploadFile:FileReference;
			private var _arrUploadFiles:Array;
			private var _numCurrentUpload:Number = 0;			
			
			// Set uploadUrl
			public function set uploadUrl(strUploadUrl:String):void {
				_strUploadUrl = strUploadUrl;
			}
			
			// Initalize
			private function initCom():void {
				//srv.send();
				_arrUploadFiles = new Array();			
				enableUI();
				uploadCheck();
			}
			
			// Called to add file(s) for upload
			private function addFiles():void {
				_refAddFiles = new FileReferenceList();
				_refAddFiles.addEventListener(Event.SELECT, onSelectFile);
				_refAddFiles.browse();
			}
			
			// Called when a file is selected
			public function onSelectFile(event:Event):void {
				var arrFoundList:Array = new Array();
				// Get list of files from fileList, make list of files already on upload list
				for (var i:Number = 0; i < _arrUploadFiles.length; i++) {
					for (var j:Number = 0; j < _refAddFiles.fileList.length; j++) {
						if (_arrUploadFiles*.name == _refAddFiles.fileList[j].name) {
							arrFoundList.push(_refAddFiles.fileList[j].name);
							_refAddFiles.fileList.splice(j, 1);
							j--;
						}
					}
				}
				if (_refAddFiles.fileList.length >= 1) {				
					for (var k:Number = 0; k < _refAddFiles.fileList.length; k++) {
						_arrUploadFiles.push({
							name:_refAddFiles.fileList[k].name,
							size:formatFileSize(_refAddFiles.fileList[k].size),
							file:_refAddFiles.fileList[k]});
					}
					listFiles.dataProvider = _arrUploadFiles;
					listFiles.selectedIndex = _arrUploadFiles.length - 1;
				}				
				if (arrFoundList.length >= 1) {
					Alert.show("The file(s): 

&#8226; " + arrFoundList.join("
&#8226; ") + "

...are already on the upload list. Please change the filename(s) or pick a different file.", "File(s) already on list");
				}
				updateProgBar();
				scrollFiles();
				uploadCheck();
			}
			
			// Called to format number to file size
			private function formatFileSize(numSize:Number):String {
				var strReturn:String;
				numSize = Number(numSize / 1000);
				strReturn = String(numSize.toFixed(1) + " KB");
				if (numSize > 1000) {
					numSize = numSize / 1000;
					strReturn = String(numSize.toFixed(1) + " MB");
					if (numSize > 1000) {
						numSize = numSize / 1000;
						strReturn = String(numSize.toFixed(1) + " GB");
					}
				}				
				return strReturn;
			}
			
			// Called to remove selected file(s) for upload
			private function removeFiles():void {
				var arrSelected:Array = listFiles.selectedIndices;
				if (arrSelected.length >= 1) {
					for (var i:Number = 0; i < arrSelected.length; i++) {
						_arrUploadFiles[Number(arrSelected*)] = null;
					}
					for (var j:Number = 0; j < _arrUploadFiles.length; j++) {
						if (_arrUploadFiles[j] == null) {
							_arrUploadFiles.splice(j, 1);
							j--;
						}
					}
					listFiles.dataProvider = _arrUploadFiles;
					listFiles.selectedIndex = 0;					
				}
				updateProgBar();
				scrollFiles();
				uploadCheck();
			}
			
			// Called to check if there is at least one file to upload
			private function uploadCheck():void {
				if (_arrUploadFiles.length == 0) {
					btnUpload.enabled = false;
					listFiles.verticalScrollPolicy = "off"; 
				} else {
					btnUpload.enabled = true;
					listFiles.verticalScrollPolicy = "on";
				}
			}
			
			// Disable UI control
			private function disableUI():void {
				btnAdd.enabled = false;
				btnRemove.enabled = false;
				btnUpload.enabled = false;
				btnCancel.enabled = true;
				listFiles.enabled = false;
				listFiles.verticalScrollPolicy = "off";
			}
			
			// Enable UI control
			private function enableUI():void {
				btnAdd.enabled = true;
				btnRemove.enabled = true;
				btnUpload.enabled = true;
				btnCancel.enabled = false;
				listFiles.enabled = true;
				listFiles.verticalScrollPolicy = "on";
			}
			
			// Scroll listFiles to selected row
			private function scrollFiles():void {
				listFiles.verticalScrollPosition = listFiles.selectedIndex;
				listFiles.validateNow();
			}
			
			// Called to upload file based on current upload number
			private function startUpload():void {
				if (NumericStepper(sida).value == 0 {
					Alert.show("Fyll i sida!", "Du glömde fylla i några saker!");
				} 
				else if (_arrUploadFiles.length > 0) { // lägg till else om ovan aktiveras
					disableUI();
					
					listFiles.selectedIndex = _numCurrentUpload;
					scrollFiles();
					
					// Variables to send along with upload
					var sendVars:URLVariables = new URLVariables();
					sendVars.action = "upload";
					sendVars.value = NumericStepper(sida).value;
					
					var request:URLRequest = new URLRequest();
					request.data = sendVars;
				        request.url = _strUploadUrl;
				        request.method = URLRequestMethod.POST;
				        _refUploadFile = new FileReference();
				        _refUploadFile = listFiles.selectedItem.file;
				        _refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);
				   	_refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete);
				        _refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
				       _refUploadFile.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
				        _refUploadFile.upload(request, "file", false);
				}
			}
			
			// Cancel and clear eventlisteners on last upload
			private function clearUpload():void {
				_refUploadFile.removeEventListener(ProgressEvent.PROGRESS, onUploadProgress);
				_refUploadFile.removeEventListener(Event.COMPLETE, onUploadComplete);
				_refUploadFile.removeEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
				_refUploadFile.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
				_refUploadFile.cancel();
				_numCurrentUpload = 0;
				updateProgBar();
				enableUI();
			}
			
			// Called on upload cancel
			private function onUploadCanceled():void {
				clearUpload();
				dispatchEvent(new Event("uploadCancel"));
			}
			
			// Get upload progress
			private function onUploadProgress(event:ProgressEvent):void {
				var numPerc:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
				updateProgBar(numPerc);
				var evt:ProgressEvent = new ProgressEvent("uploadProgress", false, false, event.bytesLoaded, event.bytesTotal);
				dispatchEvent(evt);
			}
			
			// Update progBar
			private function updateProgBar(numPerc:Number = 0):void {
				var strLabel:String = (_numCurrentUpload + 1) + "/" + _arrUploadFiles.length;
				strLabel = (_numCurrentUpload + 1 <= _arrUploadFiles.length && numPerc > 0 && numPerc < 100) ? numPerc + "% - " + strLabel : strLabel;
				strLabel = (_numCurrentUpload + 1 == _arrUploadFiles.length && numPerc == 100) ? "Upload Complete - " + strLabel : strLabel;
				strLabel = (_arrUploadFiles.length == 0) ? "" : strLabel;
				progBar.label = strLabel;
				progBar.setProgress(numPerc, 100);
				progBar.validateNow();
			}
			
			// Called on upload complete
			private function onUploadComplete(event:Event):void {
				_numCurrentUpload++;				
				if (_numCurrentUpload < _arrUploadFiles.length) {
					startUpload();
				} else {
					listFiles.dataProvider.removeAll();
					sida.value = 0;
					enableUI();
					clearUpload();
					dispatchEvent(new Event("uploadComplete"));
				}
			}
			
			// Called on upload io error
			private function onUploadIoError(event:IOErrorEvent):void {
				clearUpload();
				var evt:IOErrorEvent = new IOErrorEvent("uploadIoError", false, false, event.text);
				dispatchEvent(evt);
			}
			
			// Called on upload security error
			private function onUploadSecurityError(event:SecurityErrorEvent):void {
				clearUpload();
				var evt:SecurityErrorEvent = new SecurityErrorEvent("uploadSecurityError", false, false, event.text);
				dispatchEvent(evt);
			}
		]]>
	</mx:Script>
		
	<mx:Canvas width="100%" height="100%">
	<mx:DataGrid id="listFiles"
		allowMultipleSelection="true" verticalScrollPolicy="on"
		draggableColumns="false" resizableColumns="false" sortableColumns="false" 
		top="0" left="5" right="5" bottom="5" width="100%" height="100%">
		<mx:columns>

		<mx:DataGridColumn headerText="Filnamn" dataField="name" wordWrap="true"/>
		<mx:DataGridColumn headerText="Storlek" dataField="size" width="80" textAlign="left"/>
		<mx:DataGridColumn dataField="Sidnummer" width="80" headerText="Sidnummer" sortable="false" rendererIsEditor="true" editorDataField="value">
			<mx:itemRenderer>
				<mx:Component>
					<mx:HBox horizontalAlign="center">
						<mx:Script>
							<![CDATA[
							// Maybe I have to put something here???;
							]]>
						</mx:Script>
					<mx:NumericStepper id="sida" height="21" change="value = sida.value"/>
                                        </mx:HBox>
				</mx:Component>
			</mx:itemRenderer>
		</mx:DataGridColumn>
			
		</mx:columns>
	</mx:DataGrid>
	</mx:Canvas>

	<mx:ControlBar x="10" y="540" height="43">
		<mx:Button id="btnAdd" click="addFiles()" label="Lägg till" labelPlacement="left" icon="@Embed(source='assets/lagg_till.png')" fontWeight="bold" textAlign="center" fontSize="10"/>
		<mx:Button id="btnRemove" click="removeFiles()" label="Ta bort" labelPlacement="left" icon="@Embed(source='assets/ta_bort.png')"/>
		<mx:ProgressBar id="progBar" mode="manual" label="" labelPlacement="center" width="100%"/>
		<mx:Button id="btnCancel" click="onUploadCanceled()" label="Avbryt" labelPlacement="left" icon="@Embed(source='assets/avbryt.png')"/>
		<mx:Button id="btnUpload" click="startUpload()" label="Ladda upp" icon="@Embed(source='assets/ladda_upp.png')" labelPlacement="left" textAlign="center"/>
	</mx:ControlBar>
</mx:Panel>