2009-05-19 161 views
0

我有一個列表組件,我有一個項目編輯器的列表中的項目。我希望有一個按鈕,用戶在完成更改後單擊它們,因爲我讓他們在編輯器中編輯多個數據片段,並且還要在關閉編輯器之前驗證數據。我只是不知道該按鈕的單擊事件要做什麼才能使項目編輯器關閉,並將其更改提交給數據提供者。如何在Flex列表組件中編輯項目編輯器?

回答

0

我會用數據綁定,並讓Flex爲您做好工作。

讓對象myObject具有可綁定屬性myList:IList。將顯示綁定到此對象。

當您開始編輯時,請複製該列表。

在MouseEvent.CLICK:

var ed:Editor // Your list editing object. 
var edProvider:IList = ed.dataProvider; 
var targList:IList = myObject.myList; 

var bool:Boolean  = (myObject.myList.length > edProvider.length); 
var len:int   = (bool)? targList.length: edProvider.length; 

var item:*   = null; 

for(var i:int = 0; i < len; i++) 
{ 
    try // a "just in case". You probably will never have a problem. 
    { 
     item = edProvider.getItemAt(i); 
     targList.setItemAt(item, i); 
    } 
    catch(error:Error) 
    { 
     continue; 
    } 
} 
0

爲了處理列表控制多個字段的編輯,你需要抓住itemEditEnd事件,然後手動更改你所感興趣的領域

請參閱「示例:在此處使用具有List控件的自定義項目編輯器」 - http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_9.html#226555

通常,當您關注單元格時,列表將處理爲您分派此事件。我不確定它的屬性,但是你應該能夠在你的按鈕點擊處理器中構造這個事件,然後自己發送它。

+0

感謝您的答案,但它不是我想要的。設置值部分如果罰款只是驗證和關閉項目編輯器的一部分,我需要幫助。 – smartdirt 2009-05-20 15:32:16