[RemoteClass(alias="flex.samples.product.Product")]、前台和后台的数据更新举例

【问题描述】
点击左侧的表格,数据的信息将在右侧显示出来,此时更改右侧的数据,左侧的表格也将改变,这是前端的数据更新,刷新页面时数据又回到更新前
如果点击update按钮,则进行的是后台的数据更新,这意味着如果刷新网页,更改仍起效果
【代码分析】
前端的主文件mxml中有这样的代码
 
  
  
  
  
  1. <ProductForm product="{Product(list.selectedItem)}"/> 
 
用被选中的数据list.selectedItem实例化一个Product,并将这个对象赋值给product这个ProductForm。
(这里的Product()调用的是前台的Product.as中的实例化函数,在这个文件中有这么一条语句
  
  
  
  
  1. [RemoteClass(alias="flex.samples.product.Product")] 
 作用是将前台的Product.as和后台的Product.java映射在一起,这样从后台的getProduct()方法取回的Product返回到前台就用Product.as类来代表,而前台传给后台的Product类到了后台就被当成Product.java类来处理)
而在ProductForm中
 
  
  
  
  
  1.     <mx:Form width="100%"> 
  2. <mx:FormItem label="Name"> 
  3. <mx:TextInput id="productName" text="{product.name}"/> 
  4. </mx:FormItem> 
  5. <mx:FormItem label="Category"> 
  6. <mx:TextInput id="category" text="{product.category}"/> 
  7. </mx:FormItem> 
  8. <mx:FormItem label="Image"> 
  9. <mx:TextInput id="image" text="{product.image}"/> 
  10. </mx:FormItem> 
  11. <mx:FormItem label="Price"> 
  12. <mx:TextInput id="price" text="{product.price}"/> 
  13. </mx:FormItem> 
  14. <mx:FormItem label="Description" width="100%"> 
  15. <mx:TextArea id="description" text="{product.description}" width="100%" height="100"/> 
  16. </mx:FormItem> 
  17. </mx:Form> 
 
这段代码是将product的各个值在TextInput 控件中显示出来
紧接着ProductForm中有这样的代码
 
  
  
  
  
  1.     <Product id="product" 
  2. name="{productName.text}" 
  3. category="{category.text}" 
  4. price="{Number(price.text)}" 
  5. image="{image.text}" 
  6. description="{description.text}"/> 
 
进行的是前台的更新,这个更新是和TextInput控件中的更新同时发生的。
后台的更新则需要在点击update按钮时触发
 
  
  
  
  
  1.     <mx:ControlBar> 
  2. <mx:Button label="Update" click="srv.update(product);"/> 
  3. </mx:ControlBar> 
 

你可能感兴趣的:(职场,休闲,前后台数据更新)