- 浏览: 383818 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (196)
- window编程 (18)
- FLEX (37)
- 数据库 (5)
- Java---Struts2 (8)
- Window相关知识 (4)
- 网站建设相关知识 (2)
- java基础知识 (6)
- C# (8)
- 虚拟化 (3)
- 服务器--sound server (1)
- 网络协议 (5)
- Linux (21)
- linux-命令 (3)
- Windows-2008R2 (1)
- VBScript,异常处理 (1)
- windows域 (1)
- 弦歌不辍 (1)
- 语言---c++ (16)
- MFS (1)
- grub (1)
- 技术介绍 (3)
- 百度之星 (5)
- Web服务 (1)
- 存储管理 (2)
- NoSQL (3)
- plymouth (1)
- 工具 (1)
- 云计算 (1)
- 嵌入式 (1)
- usbip (1)
最新评论
-
canghailan:
C++中能直接操作的最大位数64,每64位统计,最后相加,暂时 ...
判断一段内存是否全部为0 -
yiranwuqing:
canghailan 写道Hamming weight 算法应 ...
判断一段内存是否全部为0 -
canghailan:
Hamming weight 算法应该效率更高
判断一段内存是否全部为0 -
zoufangyingzi:
楼主都用了哪些jar包,压缩包中没有lib包///
Rest实例演示 -
zpz112358:
具体是什么意思啊?
flex blazed 配置多个remoting-config
dp.itemUpdated(event.data,"quantity");//更新dataprovider特点域值的方法
我从别人那里听到过一些问题,他们将按钮或者其他的交互式组件放到DataGrid的一个单元格中并且想知道如何通过按钮来改变DataGrid。一个常见的使用就是删除本行记录。这里介绍了一种方法,在一个简单的订单列表中,点击"add to cart"链接会减少库存中货物的数量。当数量减少到0的时候该链接就会被禁用而且其标签更改为“out of stock”。
让我们从声明 DataGrid开始。你将会看到一个内联的itemRenderer,对于此问题来说这是一个优雅的解决方案。你也可以使用一个代码相同的自定义组件作为itemRenderer。
程序代码 程序代码
<mx:DataGrid id="grid" dataProvider="{dp}" selectable="false" y="45" horizontalCenter="0"
width="390" height="169">
<mx:columns>
<mx:DataGridColumn headerText="Product" dataField="product"/>
<mx:DataGridColumn headerText="Quantity" dataField="quantity"/>
<mx:DataGridColumn headerText="Order" dataField="action" >
<mx:itemRenderer>
<mx:Component>
<mx:LinkButton label="{data.action}"
enabled="{data.quantity > 0}"
click="sendEvent()">
<mx:Script>
<![CDATA[
private function sendEvent() : void
{
dispatchEvent( new CustomEvent(data) );
}
]]>
</mx:Script>
</mx:LinkButton>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
效果如图:
最后一列的itemRenderer是一个LinkButton。LinkButton的label是相应记录中"action"域的值。只有"quantity"域的值大于0的时候LinkButton才是激活的。当点击LinkButton的时候,会调用脚本代码中的sendEvent()方法。
注意:此处的itemRenderer是一个LinkButton,但是你也可以使用一个容器,比如一个 Canvas,然后将LinkButton和其他与你的数据相关的组件放进去。
处理的点击事件方法sendEvent会分派一个 ChartEvent(一个自定义事件)。ChartEvent只针对本行的数据记录。
注意:如果你对itemRenderer很陌生,请记住多数Flex组件,包括用来作为itemRenderer的组件都有一个data属性。这个属性是由dataProvider中与itemRenderer 所在行相应的记录所设定的。
下面是CartEvent类的代码:
程序代码 程序代码
public class CartEvent extends Event
{
static public const ADD_TO_CART:String = "addToChart";
public function CartEvent(data:Object, bubbles:Boolean=true, cancelable:Boolean=false)
{
super(ADD_TO_CART, bubbles, cancelable);
this.data = data;
}
public var data:Object;
}
这里没有多少需要说明的。事件类型是"addToCart"。这不是DataGrid分派的事件,那么你将如何监听并使用这个事件呢?问题的关键在于事件的bubbles属性的值:它默认在CartEvent构造函数中被设定为true。
由于DataGrid并不正式地支持"addToCart",所以你不能将它作为一个属性放到<mx:DataGrid>标签中。但是你可以在ActionScript中为它设定一个事件处理器:
程序代码 程序代码
grid.addEventListener(CartEvent.ADD_TO_CART, customHandler);
使用customHander()函数:
程序代码 程序代码
private function customHandler( event:CartEvent ) : void
{
// the data record is included in the event; it can be modified and
// put back into the dataProvider where it will be picked up by the
// DataGrid
event.data.quantity -= 1;
dp.itemUpdated(event.data,"quantity");//更新dataprovider特点域值的方法
if( event.data.quantity <= 0 ) {
event.data.action = "out of stock";
dp.itemUpdated(event.data,"action");
}
}
当某一行中的LinkButton被点击的时候,将会分派一个CartEvent,该事件将由customHandler()函数处理。这个函数将更改对应数据记录的"quantity"的值然后dataProvider就被更新了。当"quantity"的值变成0的时候,"action"域中的文本将会更改为"out of stock",同时dataProvider也将被更新。
一直点击Sprockets产品(看下图)的"add to cart"的链接直到它的数量减为0。然后LinkButton的标签就会变成"out of stock"并且被禁用。
注意当数据更新的时候属性的名字也传给了itemUpdated()方法,这样做可以保证只有那个域被更新了。如果 dataProvider有排序操作的话,该域不是排序的一部分,更新它不会引发dataProvider自动排序。
这个例子可以有很多变型。例如,CartEvent可以传递行的索引而不是数据本身,然后customHandler就可以使用该索引从dataProvider中提取数据。在某些情况下索引可能比数据本身更有价值,或者你也可以同时使用这两个。
那么itemClick呢?
现在你可能会想:只通过itemClick就达到上述的目的阿,为何还好那样做?。没错,使用itemClick你可以知道哪一行的哪个域被点击了。然后你就可以更新数据,DataGrid中的显示也会自动更新。
但是这种方法的优势是:你有一个可交互的单元格——在本例中是一个LinkButton,但是它可以很复杂。当你需要一个自定义的itemRenderer的时候不妨考虑一下这种方法。
转自:http://blog.chinaunix.net/u1/55983/showart_909256.html
我从别人那里听到过一些问题,他们将按钮或者其他的交互式组件放到DataGrid的一个单元格中并且想知道如何通过按钮来改变DataGrid。一个常见的使用就是删除本行记录。这里介绍了一种方法,在一个简单的订单列表中,点击"add to cart"链接会减少库存中货物的数量。当数量减少到0的时候该链接就会被禁用而且其标签更改为“out of stock”。
让我们从声明 DataGrid开始。你将会看到一个内联的itemRenderer,对于此问题来说这是一个优雅的解决方案。你也可以使用一个代码相同的自定义组件作为itemRenderer。
程序代码 程序代码
<mx:DataGrid id="grid" dataProvider="{dp}" selectable="false" y="45" horizontalCenter="0"
width="390" height="169">
<mx:columns>
<mx:DataGridColumn headerText="Product" dataField="product"/>
<mx:DataGridColumn headerText="Quantity" dataField="quantity"/>
<mx:DataGridColumn headerText="Order" dataField="action" >
<mx:itemRenderer>
<mx:Component>
<mx:LinkButton label="{data.action}"
enabled="{data.quantity > 0}"
click="sendEvent()">
<mx:Script>
<![CDATA[
private function sendEvent() : void
{
dispatchEvent( new CustomEvent(data) );
}
]]>
</mx:Script>
</mx:LinkButton>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
效果如图:
最后一列的itemRenderer是一个LinkButton。LinkButton的label是相应记录中"action"域的值。只有"quantity"域的值大于0的时候LinkButton才是激活的。当点击LinkButton的时候,会调用脚本代码中的sendEvent()方法。
注意:此处的itemRenderer是一个LinkButton,但是你也可以使用一个容器,比如一个 Canvas,然后将LinkButton和其他与你的数据相关的组件放进去。
处理的点击事件方法sendEvent会分派一个 ChartEvent(一个自定义事件)。ChartEvent只针对本行的数据记录。
注意:如果你对itemRenderer很陌生,请记住多数Flex组件,包括用来作为itemRenderer的组件都有一个data属性。这个属性是由dataProvider中与itemRenderer 所在行相应的记录所设定的。
下面是CartEvent类的代码:
程序代码 程序代码
public class CartEvent extends Event
{
static public const ADD_TO_CART:String = "addToChart";
public function CartEvent(data:Object, bubbles:Boolean=true, cancelable:Boolean=false)
{
super(ADD_TO_CART, bubbles, cancelable);
this.data = data;
}
public var data:Object;
}
这里没有多少需要说明的。事件类型是"addToCart"。这不是DataGrid分派的事件,那么你将如何监听并使用这个事件呢?问题的关键在于事件的bubbles属性的值:它默认在CartEvent构造函数中被设定为true。
由于DataGrid并不正式地支持"addToCart",所以你不能将它作为一个属性放到<mx:DataGrid>标签中。但是你可以在ActionScript中为它设定一个事件处理器:
程序代码 程序代码
grid.addEventListener(CartEvent.ADD_TO_CART, customHandler);
使用customHander()函数:
程序代码 程序代码
private function customHandler( event:CartEvent ) : void
{
// the data record is included in the event; it can be modified and
// put back into the dataProvider where it will be picked up by the
// DataGrid
event.data.quantity -= 1;
dp.itemUpdated(event.data,"quantity");//更新dataprovider特点域值的方法
if( event.data.quantity <= 0 ) {
event.data.action = "out of stock";
dp.itemUpdated(event.data,"action");
}
}
当某一行中的LinkButton被点击的时候,将会分派一个CartEvent,该事件将由customHandler()函数处理。这个函数将更改对应数据记录的"quantity"的值然后dataProvider就被更新了。当"quantity"的值变成0的时候,"action"域中的文本将会更改为"out of stock",同时dataProvider也将被更新。
一直点击Sprockets产品(看下图)的"add to cart"的链接直到它的数量减为0。然后LinkButton的标签就会变成"out of stock"并且被禁用。
注意当数据更新的时候属性的名字也传给了itemUpdated()方法,这样做可以保证只有那个域被更新了。如果 dataProvider有排序操作的话,该域不是排序的一部分,更新它不会引发dataProvider自动排序。
这个例子可以有很多变型。例如,CartEvent可以传递行的索引而不是数据本身,然后customHandler就可以使用该索引从dataProvider中提取数据。在某些情况下索引可能比数据本身更有价值,或者你也可以同时使用这两个。
那么itemClick呢?
现在你可能会想:只通过itemClick就达到上述的目的阿,为何还好那样做?。没错,使用itemClick你可以知道哪一行的哪个域被点击了。然后你就可以更新数据,DataGrid中的显示也会自动更新。
但是这种方法的优势是:你有一个可交互的单元格——在本例中是一个LinkButton,但是它可以很复杂。当你需要一个自定义的itemRenderer的时候不妨考虑一下这种方法。
转自:http://blog.chinaunix.net/u1/55983/showart_909256.html
发表评论
-
flex使用amchart的破解水印方法
2010-12-23 10:18 2790需要继承AmChart的类,将宽、高、透明度设成0,例如: ... -
FLEX习作:图片轮播(18种过渡效果随机应用)
2010-08-29 00:51 2326主文件imgshow.mxml: 引用 <?xml v ... -
AS3及Flex的百条常用知识
2010-08-27 17:38 1525【自动大小调整和对齐】 TextField.autoSize ... -
Flex:在PANEL的title上加一个button
2010-08-26 16:30 1365在panel的titleBar上添加按钮,首先 overrid ... -
flex blazed 配置多个remoting-config
2010-08-22 17:37 2190我把配置贴出来,大家如果有类似需求可以参考下: remoti ... -
flex chart网站
2010-08-22 12:25 1783http://examples.adobe.com/flex2 ... -
FLEX:TypeError: Error #1034解决
2010-07-25 15:17 1660LEX:TypeError: Error #1034: 強制轉 ... -
页面跳转问题
2010-07-25 15:15 956其实对于这个题目是不恰当的,因为flex中是没有页面这个概念的 ... -
AIR的绿化
2010-07-25 14:35 741http://hi.baidu.com/fsnhf/blog/ ... -
flex中扩展combobox功能
2010-07-23 22:54 1307近段时间在忙flex的东西,边学习边使用。里边有个ComboB ... -
Flex调用Webservice时可能产生的所有错误,监控哪些错误
2010-07-22 22:22 2296判断web服务是否没有方法,是否路径错误,是否编码错误,是否解 ... -
flex Webservice 有哪些事件可监控
2010-07-22 21:25 1109private var webserviceURL:WebSe ... -
Flex跨域调用Webservice问题
2010-07-22 18:05 1936最近在用Flex做一个项目,在本机调试一切正常,传到服务器上之 ... -
Flex 字体使用
2010-07-20 22:36 1281Flex 支持的True Type和Open Type类型的字 ... -
个人总结flex各种用法
2010-07-20 22:29 1666多篇日志总结的,非原创,但为了更多人看这篇不错的日志,设置为原 ... -
Flex 平铺背景图片
2010-07-20 21:54 2115package { import flash.geom.Rec ... -
使用flex的session
2010-07-20 21:48 9611.写 session mxml 文件 加 <mx ... -
Flex控制session方法
2010-07-20 21:48 1561采用filter 监控 MessageBrokerServle ... -
LocalConnection实现swf与swf之间通信
2010-07-19 22:40 3157LocalConnection可以实现swf与swf之间的通信 ... -
对于FLex中有些服务器不可达解决
2010-07-18 12:23 828在Flash安全模型限制作出插座连接到任何服务器不明确允许这样 ...
相关推荐
详细介绍Flex的项目呈现器的各种初级用法以及高级用法,相当实用。
checkbox和combobox作为DataGrid的itemRenderer和headerRenderer 包括全选,多选,等。。。
Flex dataGrid 全选、反选 checkBox 不是很完善,但很有借鉴意义
flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net
flex datagrid 改变指定行的背景颜色,可直接使用
这个分页只与后台交互一次,然后将获得的集合在前台进行分页显示。
flex datagrid资料,下载的别人的,想弄点分数啊
NULL 博文链接:https://windmark.iteye.com/blog/1716422
成功的实现了,datagrid中嵌套checkbox实现全选的功能。分享代码供大家分享。项目为flex3。
flex 通过读取xml文件 实现动态DataGrid数据列表
flex Datagrid checkbox全选 Datagrid
flex DataGrid复选框源码 flex DataGrid复选框源码 flex DataGrid复选框源码
可以通过简单的一个标签实现一个表的checkbox功能,当然我才学了不到一个星期,可以在原来的基础上进行扩展,希望交流下我的邮箱是llaysz@163.com,如果大家把它变强大了记得给我发一份谢谢了
Flex DataGrid从XML文件中加载数据
FLEX的datagrid合计、平均值,很好的例子代码拿来就可以用
在FLEX4中开发带有过滤功能的DATAGRID组件
Flex DataGrid 改变某一行的背景颜色,自定义的DataGrid组件
最近用到,flex datagrid最下面加上了合计功能,源代码,下载可导入直接运行
flex datagrid pagination, flex分页组件
将flex中datagrid组件中数据导出到excel表格中。思路很简单,利用as将datagrid中的数据解析出来,传到后台java服务端处理,即可保存为excel文件。