Показать сообщение отдельно
Старый 23.06.2008, 16:46
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 1  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
По умолчанию DataProvider в MXML и AS3 в чем разница

Ниже приведен пример загрузка XML данных в грид и комбобокс объявленные в MXML нотации и грид добавленный программным способом
Вопрос состоит в следующем что нужно дописать к программируемому гриду что бы он вел себя так же как и объявленные MXML нотацией при изменении данных в DATAPROVIDER!

Код:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();">
<mx:Script>
        <![CDATA[
        	import mx.controls.dataGridClasses.DataGridColumn;
        	import mx.controls.DataGrid;
        [Bindable]
         private var xxx:XML = new XML()
         private var dg:DataGrid = new DataGrid()
            private function init():void
            {
            	
            	var dgcolumns:Array = new Array();
            	
            	var dgcolumn1:DataGridColumn = new DataGridColumn();
            	
            	dgcolumn1.dataField="@id";
            	dgcolumns.push(dgcolumn1)
            	var dgcolumn2:DataGridColumn = new DataGridColumn();
            	dgcolumn2.dataField="@name";
            	dgcolumns.push(dgcolumn2)
            	var dgcolumn3:DataGridColumn = new DataGridColumn();
            	dgcolumn3.dataField="@desc";
            	dgcolumns.push(dgcolumn3)
            	dg.columns = dgcolumns;
            	dg.width=200
            	dg.height=200
            	this.addChild(dg);
            	dg.dataProvider = this.xxx.item;
            	
            	
            }
            private function f(evt:Event):void 
            {
            
            	this.xxx = XML ('<o><item id="1" name="name1" desc="ffffffff" /><item id="1" name="name2" desc="ffffffff" /><item id="1" name="name1" desc="ffffffff" /><item id="1" name="name2" desc="ffffffff" /></o>');
            	
            }
             private function f_2(evt:Event):void 
            {
            
            	this.xxx = XML ('<o><item id="1" name="name1" desc="ffffffff" /><item id="1" name="name2" desc="ffffffff" /><item id="1" name="name1" desc="ffffffff" /><item id="1" name="name2" desc="ffffffff" /></o>');
            	dg.dataProvider = this.xxx.item;// почему приходится добавлять эту строчку? и что дописать что бы было как внотации MXML?
            }
        ]]>
    </mx:Script>
    <mx:Model id="md1">
    	<o>
    	
    	<item id="1" name="name1" desc="ffffffff" />
    	<item id="1" name="name2" desc="ffffffff" />
    	<item id="1" name="name1" desc="ffffffff" />
    	<item id="1" name="name2" desc="ffffffff" />
    	</o>
    </mx:Model>
    
	<mx:ComboBox dataProvider="{xxx.item}" labelField="@name"></mx:ComboBox>
		
	
	<mx:DataGrid dataProvider="{xxx.item}">
		<mx:columns>
			<mx:DataGridColumn headerText="Column 1" dataField="@id"/>
			<mx:DataGridColumn headerText="Column 2" dataField="@name"/>
			<mx:DataGridColumn headerText="Column 3" dataField="@desc"/>
		</mx:columns>
	</mx:DataGrid>
    <mx:Button click="f(event)" label="загрузка обычная" />
	<mx:Button click="f_2(event)" label="загрузка для программируемого грида"/>
	
   
   
</mx:Application>


Последний раз редактировалось Захаров; 23.06.2008 в 16:49.