about Flex DataGrid edit
Summary(¸ÅÊö)£º Adobe Flex µÄ dataGrid ÓкÜÇ¿´óµÄ¹¦ÄÜ£¬±ÈÈçItemRenderer,headerRendererµÈ£¬¿ÉÒÔ·½±ãµØÊµÏÖ×Ô¼ºÏëÒªµÄ¹¦ÄÜ¡£µ«¶ÔdataGridÖ±½Ó±à¼²¢±£´æµ½Service¶Ë£¬¾ÍÓеãÂé·³ÁË¡£
Requirement(ÐèÇó)£º ¶ÔdataGrid½øÐе¥Î»¸ñ±à¼£¬ÈôÓб仯£¬±£´æµ½Service; ·ñÔò²»±£´æ¡£
Solution(½â¾ö·½°¸): ÔËÓÃDataGrid µÄ itemEditBegin ʼþ¡¢itemFocusOut ʼþ¡£
1. when the itemEditBegin is dispatched, the event handler should save this cell value as old value.(±à¼Ç°±£´æ¾ÉÖµ)
2. when the listener of itemFocusOut is responding, you should check the current cell to the old value. If it's value have changed, you should save the new value to Service.(±à¼ºóÅжϣ¬ÊÇ·ñ¸ü¸Ä¡£)
Example(Àý×Ó) as follow:
<mx:Script>
<![CDATA[
private var oldValueOfEditedItem: CreditVO;
private function creditDGEditBegin(event: DataGridEvent): void {
oldValueOfEditedItem = (event.itemRenderer.data as CreditVO).clone() as CreditVO;
}
private function editedItemChanged(newValue: CreditVO): Boolean {
return (newValue.amount != oldValueOfEditedItem.amount)||
(newValue.description != oldValueOfEditedItem.description);
}
private function creditDGEditEnd(event: DataGridEvent): void {
var newValue: CreditVO = event.itemRenderer.data as CreditVO;
if (editedItemChanged(newValue)) {
dispatchEvent(new UpdateCreditEvent(newValue))
}
}
]]>
&
Ïà¹ØÎĵµ£º
ÔÚ±¾ÏµÁÐÇ°Ãæ¼¸ÆªÎÄÕÂÖзֱð½éÉÜÁËͨ¹ýWebService¡¢HTTPService¡¢URLLoaderÒÔ¼°FielReferenceµÈ×é¼þ
»òÀàÀ´Íê³ÉFlexÓë.NET·þÎñ¶ËµÄͨÐŵÄÏà¹ØÖªÊ¶µã¡£Í¨¹ýÕâЩ·½Ê½À´Íê³ÉÓë·þÎñ¶ËµÄͨÐÅÊǷdz£·½±ãºÍ¼òµ¥µÄ£¬µ«ÓÐËûµÄȱµã¾ÍÊÇͨÐÅÊý¾ÝÁ¿½ÏС£¬ÈçÒª´«
Êä´óÁ¿µÄÊý¾Ý»òÊÇʵÏÖ²»Í¬¶ÔÏóµÄÐòÁл¯´«Ê䣬ËüÃÇÔòÂú×ã²»ÁËÎÒÃǵ ......
<mx:TextInput id="userName" maxChars="4" restrict="a-zA-Z" />
restrictÊôÐÔȷʵ¿ÉÒÔÊäÈëÕýÔò±í´ïʽ£¬½øÐÐÊäÈëµÄÑéÖ¤¡£
µ«ÊÇÔÚ³ÌÐòÖ´ÐеÄʱºòÈç¹ûΪuserName.text = "999"»¹ÊÇ¿ÉÒԳɹ¦µÄ¡£
´ýÐø¡£¡£¡£¡£Ñ§Ï°ÖС£¡£¡£ ......
ǰһÕóÔÚÂÛ̳ÉÏ¿´µ½Ò»¸öÐֵܣ¬ÏëÔÚFlex ChartÖÐΪͼÀýÉèÖÃ3DЧ¹û,½ü¼¸Ìì²éÕÒÁËЩ×ÊÁÏ£¬¶¯ÊÖ×öÁ˸öDEMO¹©´ó¼Ò²Î¿¼!
DEMOÑÝʾµØÖ·http://xingjunli.webs.com/flash/flexChartDemo.swf,ÏÈÀ´¸öͼƬ¿´¿´×îÖÕЧ¹û:
Ïà¹ØÖªÊ¶µã
......
Root folder
Õâ¸öĿ¼Ӧ¸ÃÌîдtomcatĿ¼Ï£¬ÄǸöjavaÏîÄ¿µÄËùÔÚλÖã¬Èç¹ûΪ´í£¬»á³öÏÖ“ Invalid root. The WEB-INF/flex folder must contain either flex-config.xml or services-config.xml.”ËüÌáʾ¸ÃĿ¼WEB-INF²»´æÔÚflex-config.xml»òservice-config.xmlÎļþ£¬Èç¹ûÊÇÒ»¸öÕý³£µÄjavaÏîÄ¿£¬¾Í»áÓÐÕâ¸öÎļ ......
4. Àí½âʼþ½×¶Î(Event Phases) ÎÒÃǰÑʼþ´¥·¢Ô´·ÖΪÁ½ÀࣺһÀàÊÇÄÇЩÏÔʾÔÚ½çÃæÖеÄÔªËØÅ׳öµÄʼþ£¬Ò»ÀàÊÇÄÇЩ²»ÔÚ½çÃæÖÐÏÔʾµÄÔªËØÅ׳öµÄʼþ¡£ºÜ¼òµ¥£¬¾Ù¸öÀý×Ó£ºµÚÒ»ÀàÈçURLLoader¶ÔÏóÈ¥loadͼƬ»òÆäËû×ÊÔ´ËùÅ׳öµÄÈçcompleteʼþ£¬¾ÍÊôÓÚµÚÒ»Àà¡£½çÃæÉϵÄÒ»¸ö°´Å¥ËùÅ׳öµÄclickʼþ¾ÍÊǵڶþÀ࣬Ëü»á´¥·¢Ò»¸öʼþÁ÷£¬ ......