- 浏览: 7331375 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
flex项目中对象的和组件的绑定的使用开发:
package controller.utils{
import com.unutrip.collections.HashMap;
import com.unutrip.collections.IMap;
import flash.display.DisplayObject;
import flash.utils.describeType;
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
import mx.events.PropertyChangeEvent;
import mx.utils.ObjectProxy;
/**
* @Description: BindingHelper
* @author 白龙岗
*/
public class BindingHelper{
/**
* 目前支持的绑定组件类型
*/
private static const typeMap: Object = { 'mx.controls::TextInput' : 'text',
'mx.controls::DateField' : 'selectedDate',
'mx.controls::ComboBox': 'selectedItem'
};
/**
* 存储监控对象的句柄
* key: entityObj
* value: ChangeWatcher
*/
private static var handleList:IMap = new HashMap();
/**
* 对象与组件的数据动态双向绑定
* @param entityObj Entity Object
* @param displayObj MX控件
* @param type 控件类型,如:'mx.controls::TextInput'
* @exclude 需要排除的property
* @bidirectional 是否做双向绑定(如果为false,那么只做entity到displayObject的绑定)
* @param commitOnly
*/
public static function bidirectionalDataBind(
entityObj:Object,
displayObj:DisplayObject,
exclude:Array=null,
bidirectional:Boolean=true,
type:String='ALL',
commitOnly:Boolean = false):void{
if(type == 'ALL'){
for (var typeTmp:String in typeMap){
bidirectionalDataBind(entityObj,displayObj,exclude,bidirectional,typeTmp,commitOnly);
}
}else{
//通过反射机制取出当前MXML中的信息
var instanceInfo:XML=flash.utils.describeType(displayObj);
var properties:XMLList =instanceInfo..accessor.(@type==type);
var tmpObj:ObjectProxy;
// trace(instanceInfo..accessor.(@type==type));
var prop:String = BindingHelper.getSiteProp(type);
for each(var propertyInfo:XML in properties){
//此处取出的为textinput的id
var proName:String = propertyInfo.@name;
// 需要排除的property
if(exclude != null && exclude.indexOf(proName) != -1){
continue;
}
// 检查该property是否存在
if(BeanUtils.checkPropertyExist(entityObj,proName) == false){
continue;
}
try{
// ComboBox
if(type == 'mx.controls::ComboBox'){
if(handleList.getValue(entityObj) == null){
handleList.put(entityObj,new HandleObject(entityObj));
}
var cw:ChangeWatcher = ChangeWatcher.watch(entityObj,proName,setData);
HandleObject(handleList.getValue(entityObj)).addChangeWatcher(proName,cw);
BindingUtils.bindProperty(entityObj,proName,DisplayObject(displayObj[proName]),prop,commitOnly);
}else{
BindingUtils.bindProperty(DisplayObject(displayObj[proName]),prop,entityObj,proName,commitOnly);
if(bidirectional == true)
BindingUtils.bindProperty(entityObj,proName,DisplayObject(displayObj[proName]),prop,commitOnly);
}
}catch(err:Error){
trace(err.message);
}
}
}
}
/**
* 清空监控对象的句柄集合
*/
public static function clean():void{
if(handleList != null){
for each(var ho:Object in handleList.getValues()){
HandleObject(ho).clean();
}
handleList.clear();
}
}
/**
* 监听ComboBox事件的变化
* @param obj
*/
private static function setData(obj:PropertyChangeEvent):void{
if(obj.newValue == null){
return;
}
var ho:HandleObject = handleList.getValue(obj.source);
var cw:ChangeWatcher = ho.getChangeWatcher(obj.property);
if(obj.newValue is String){
cw.unwatch();
cw = ChangeWatcher.watch(obj.source,obj.property,setData);
ho.addChangeWatcher(obj.property,cw);
return;
}else{
var code:Object = obj.newValue.code;
obj.source[obj.property] = code;
}
}
/**
* 返回组件TYPE对应的需要填充的属性名称
* @param type
* @return
*/
private static function getSiteProp(type: String): String{
for (var name:String in typeMap){
if(name == type){
return typeMap[name];
}
}
return null;
}
}
}
import mx.binding.utils.ChangeWatcher;
import com.unutrip.collections.HashMap;
import com.unutrip.collections.IMap;
internal class HandleObject{
private var entityObject:*;
private var properityList:IMap;
public function HandleObject(entityObject:*):void{
this.entityObject = entityObject;
properityList = new HashMap();
}
public function addChangeWatcher(propName:Object, cw:ChangeWatcher):void{
properityList.put(propName,cw);
}
public function getChangeWatcher(propName:Object):ChangeWatcher{
return properityList.getValue(propName);
}
public function clean():void{
for each(var cw:Object in properityList.getValues()){
ChangeWatcher(cw).unwatch();
}
properityList.clear();
}
}
package controller.utils{
import com.adobe.serialization.json.JSON;
import mx.collections.ArrayCollection;
import mx.utils.ObjectUtil;
import mx.utils.StringUtil;
/**
* @Description: Object Utils
* @author bailonggang
*/
public class BeanUtils{
/**
* 检查对象的property是否存在
* @param obj
* @param proName
* @return
*/
public static function checkPropertyExist(targetObj:*, proName:String):Boolean{
if(targetObj as String
|| targetObj as int
|| targetObj as Date
|| targetObj as Number){
return false;
}
var objInfo:Object = ObjectUtil.getClassInfo(targetObj);
for each(var name:String in objInfo.properties){
if(name == proName){
return true;
}
}
return false;
}
发表评论
-
flex 中As3Commons的使用學習
2009-10-15 12:53 3723學習Java的人,知道java中反射的强大, ... -
flex的国家化的应用
2009-09-23 08:59 2091在项目中需要使用发送短信模板的功能的,根据主题不同,模板不同, ... -
flex的沙箱问题
2009-09-14 17:14 5449在flex与google的地图整合中发现,点击了goog ... -
Flex 常用技巧
2009-09-04 13:00 2574flex是一种异步请求的技术,如果要实现同步必须在传递函 ... -
Flex 開發Google地圖
2009-08-24 13:16 24421 .获取googe的key 2.下载google的fle ... -
查询之order by,group by和having的使用
2009-08-08 15:48 4719在项目中查询常驻酒店的中住的次数最多的前10个酒店: 代码如 ... -
objectProxy的监控对象应用
2009-08-08 13:46 2677在项目中查询根据一个字段发生实现需要特殊的功能,作出相应的动作 ... -
Flex 依赖注入
2009-08-08 13:41 2092了解依赖注入 众所周 ... -
Flex 与外部的数据通信(HTTPService,URLLoader和URLRequest)
2009-08-08 13:36 7430ActionScript 3.0中提供的数据加载请求类主要是H ... -
flex 数据绑定
2009-08-08 13:31 24019.2.1 函数和类级别的绑定 [Bindable]标签打使 ... -
学习ActionScript 3.0的新特点
2009-08-06 13:05 2006ActionScript3.0 是一种类型 ... -
理解 Flex itemRenderer - 第 1 部分: 内联渲染器
2009-08-05 16:37 3134Flex 提供许多控制, 它们可以按不同方式显示大量数据。Li ... -
flex 中类似Google的提示下拉菜单实现
2009-08-01 16:28 5413项目中使用类似Gooogle输入提示菜单的实现如下 ... -
针对Flex中组件的扩展的应用开发
2009-08-01 16:04 2864在项目中使用一个自定义的CheckboxGroup组件继承自C ... -
Flex类似Google搜索提示的两种做法思路
2009-08-01 15:52 2677做了个简单的搜索提示 ... -
Flex中直接获取某个组件的对象
2009-08-01 15:47 2451Flex中直接获取某个组件的对象方案1: 遍历这些butto ... -
flex 查看类的各种数据的权限
2009-08-01 15:18 1868查看类的一些属性的信息:可读,可写,可读可写。 ... -
flex中getDefinitionByName 函数的使用
2009-08-01 12:40 6739在项目中自定义一个CheckboxGroup,这个控件里面 ... -
Flex 学习中数据类型必须注意的几点
2009-08-01 12:36 2246在字符串转换为int类型必须使用 最好如下: var a:i ... -
flex BindUtils的扩展的样式表绑定工具类StyleBindingUtils
2009-07-30 13:06 2215项目中使用的样式表绑定类如下: package uti ...
相关推荐
在C#编程中,数据绑定是一项关键特性,它允许开发者将UI控件与数据源连接起来,实现数据的动态展示和交互。数据绑定控件在Windows Forms和WPF(Windows Presentation Foundation)等平台上广泛使用,简化了用户界面...
在Visual C#编程环境中,数据绑定是一项至关重要的技术,它使得应用程序能够动态地与各种数据源进行交互,显示和更新数据。数据绑定可以根据所使用的组件分为两类:简单数据绑定和复杂数据绑定。这两种绑定方式各有...
数据绑定是.NET框架中的核心概念,允许UI元素与数据源动态关联。在DevExpress GridControl中,数据绑定使你可以将数据集、实体框架模型或其他数据结构映射到控件的行和列,实现数据的实时更新。 2. **数据源选择**...
`Bind`则支持双向数据绑定,不仅可以读取数据,还可以在用户界面更改时更新数据源。 在进行数据绑定时,需要注意以下几点: 1. 数据源的生命周期管理:确保在适当的时间加载和释放数据源,避免内存泄漏。 2. 数据...
4. **显示数据**:在Flex界面中显示解析出的JSON数据,你可以绑定这些数据到UI组件,如Label、List或其他自定义组件。 5. **事件处理**:在用户交互后,可能需要更新JSON数据并发送回服务器,这时你需要构建新的...
- 数据绑定:如`DataSource`属性,`DisplayMember`和`ValueMember`设置 - 事件处理:如`CellValueChanged`事件,用于监听下拉框选择的变化 最后,提供的`WindowsFormsApp1`可能是一个示例项目,包含实现上述功能的...
在DevExpress TreeList中,数据绑定是指将数据源(如数据库表、对象集合或XML文件)与TreeList控件关联的过程。这使得TreeList可以自动加载、显示和更新数据源中的信息。数据绑定的基本步骤包括: 1. 创建数据源:...
在本文中,我们将深入探讨如何配置GridControl的属性,实现动态数据绑定,以及添加全选和取消全选的功能。 首先,让我们了解GridControl的一些核心属性: 1. **ReadOnly**:这个属性决定了GridControl是否允许用户...
在ASP.NET中,数据绑定是将数据源与用户界面元素(如控件)连接起来的关键技术,使得网页能够动态地显示和更新数据。在这个"ASP.NET视频数据绑定"的主题中,我们将深入探讨数据绑定的概念、类型以及如何在实践中应用...
数据绑定是.NET框架中的一个强大功能,它允许UI控件与数据源之间建立动态连接,使用户界面能够实时反映数据源的变化。 在Windows Forms 2.0中,数据绑定提供了对多种数据源的支持,包括数据库、XML、数组、集合和...
本主题将深入探讨如何在Cesium中利用Entity类创建不同的实例对象,并实现点击事件功能,以便与用户进行交互。 首先,让我们了解Cesium中的Entity类。Entity类是Cesium中的一个抽象基类,它提供了用于在3D场景中表示...
.NET数据绑定是微软开发平台中的一个核心特性,主要用于在应用程序的UI层与数据源之间建立动态的连接,使得数据能够实时地反映到用户界面中。在ASP.NET中,数据绑定尤其重要,它使得Web应用程序能够轻松地显示和操作...
C#中的数据绑定支持双向绑定,允许用户通过界面修改数据并同步到后台。 2. **数据绑定的步骤**: - 创建数据源:根据具体需求选择合适的数据源,比如使用ADO.NET建立数据库连接,执行SQL查询获取数据。 - 数据...
在ASP.NET开发中,数据绑定是一项核心功能,它允许开发者将数据源与UI元素关联,以便在用户界面中展示或编辑数据。本演练主要探讨如何将数据绑定到自定义的业务对象,这在构建复杂的Web应用程序时尤为重要。通过...
ASP.NET 数据绑定是微软开发的一种强大的技术,用于在Web应用程序中动态显示和操作数据。它允许开发者将数据源(如数据库、XML文件或对象集合)与用户界面元素(如控件)连接起来,使得数据的更新和展示变得更加简单...
例如,ORM(对象关系映射)工具如Hibernate和Entity Framework提供了强大的数据绑定功能,它们自动处理了对象与数据库表之间的映射,使得开发者可以使用面向对象的方式来操作数据库。此外,还有一些轻量级的解决方案...
在本例中,数据源是一个`List<object>`类型的列表,其中每个对象代表一个实体(Entity)。 3. **递归绑定**: 由于TreeView控件需要按照数据的层级关系创建节点,因此通常采用递归来实现绑定。递归函数会检查当前...
在ASP.NET中,数据绑定是一种将数据源(如数据库、XML文件或任何可枚举对象)与UI元素(如控件)关联的方法,使得当数据源发生变化时,UI会自动更新。这种机制简化了开发过程,减少了手动操作DOM的代码量。数据绑定...
标题中的“entity id到真实数据的映射”指的是Freebase中的每个实体都有一个唯一的标识符,称为mid(Machine ID)。这些mids是Freebase内部用来唯一识别实体的字符串,类似于数据库中的主键。例如,一个表示“艾伦·...
在.NET框架中,数据绑定是将用户界面(UI)组件与数据源连接的关键技术,它使得数据能够自动地反映在用户界面上,并且允许用户对数据进行交互操作。本主题主要探讨的是如何利用.NET的数据绑定模型来创建可绑定的数据...