2012-05-23 38 views
1

我使用內聯的itemrenderer創建了一個datagrid。 渲染器是一個下拉列表。 當dropdowlist值發生變化時,我想更新dataprovider,但我沒有找到如何做到這一點。 你能幫我嗎?datagrid inline itemrender更改dataprovider值

感謝

[Bindable] private var DP_PRAT_INIT:ArrayCollection; 

<s:DataGrid id="dgTuVous" fontWeight="normal" 
             dataProvider="{DP_PRAT_INIT}" 
             width="100%" height="100%" 
             horizontalScrollPolicy="on" 
             fontSize="10" 

             > 
           <s:columns> 
            <s:ArrayList> 
             <s:GridColumn dataField="prInitiales" width="40" headerText="Prat" /> 
             <s:GridColumn width="75" dataField="prTuVous" 
                 headerText="Tu/Vous" editable="true"> 
              <s:itemRenderer> 
               <fx:Component> 
                <s:GridItemRenderer> 
                 <fx:Script> 
                  <![CDATA[ 
                   import spark.events.IndexChangeEvent; 



                   protected function ddlTuVous_changeHandler(event:IndexChangeEvent):void 
                   { 

                    DP_PRAT_INIT[ddlTuVous.selectedIndex].prTuVous=ddlTuVous.selectedItem; 

                    trace ("ddlTuVous.selectedItem" +ddlTuVous.selectedItem) ; 

                   } 

                  ]]> 
                 </fx:Script> 
                 <s:DropDownList width="100%" selectedIndex="1" id="ddlTuVous" 
                     change="ddlTuVous_changeHandler(event)"> 
                  <s:dataProvider> 
                   <s:ArrayList> 
                    <fx:String>Tu</fx:String> 
                    <fx:String>Vous</fx:String> 
                   </s:ArrayList> 
                  </s:dataProvider> 
                 </s:DropDownList> 
                </s:GridItemRenderer> 
               </fx:Component> 
              </s:itemRenderer> 



             </s:GridColumn> 

            </s:ArrayList> 
           </s:columns> 
          </s:DataGrid> 
+0

答案應該是在這些文件上使用項編輯瓦特/星火的DataGrid:http://help.adobe.com/en_US/flex/using/WS0ab2a460655f2dc3-427f401412c60d04dca-7ff3。 html – JeffryHouser

回答

1

您參考與outerDocument財產主機控制...所以你會打電話outerDocument.DP_PRAT_INIT,如果你要訪問數組。但是,該陣列是私人的,所以你必須公開。或者,你可以制定一個公共職能,你可以打電話給outerDocument但是......惡作劇。

如果我正確理解你的代碼,你應該訪問GridItemRendererdata性質是一樣的,只是它是更好,因爲你沒有可能的索引不匹配outerDocument.DP_PRAT_INIT[ddlTuVous.selectedIndex] ...

所以,你真正想要的是:

data.prTuVous = ddlTuVous.selectedItem; 
+0

謝謝,我使用data.prTuVous = ddlTuVous.selectedItem;它的工作 – Flex60460