zoukankan      html  css  js  c++  java
  • Adobe Flex迷你教程 — DataGrid滚动条单击异常处理

      我们对于DataGrid一般有这样的需求:
            单击DataGrid的某一行,拿到这行的数据,进行下步动作(我们为此注册了一个click函数dtGrid_clickHandler(event))。
          结果:有时我们数据比较多,DataGrid自动产生了滚动条。
                   我们本想按住滚动条滑动,可是不小心单击了它,同样也会触发dtGrid_clickHandler(event)函数。
                    这样我们里面写的 trace(dtGrid.selectedItem.value);就会出错。
         原因分析:仔细研究后发现 原来滚动条是个Button,这个Button在DataGrid的上面,单击这个Button后,下面的DataGrid冒泡的也拿到了单击事件。
                        所以,加上 判断 if(event.target is Button)  reutrn;
    <?xml version="1.0"?>
    <!--
    * Created with IntelliJ IDEA.
    * User: DongYang
    * Date: 13-3-12
    * Time: 上午12:07
    * Progress every day a little more -->
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                  xmlns:s="library://ns.adobe.com/flex/spark">
       <s:DataGrid id="dtGrid" width="180" height="129" top="10" left="10"
                   dataProvider="{_data}" click="dtGrid_clickHandler(event)">
           <s:columns>
               <s:ArrayList>
                   <s:GridColumn dataField="name"/>
               </s:ArrayList>
           </s:columns>
       </s:DataGrid>
       <s:Button id="initData" x="366" y="57" label="添加数据" click="initData_clickHandler(event)"/>
       <fx:Script><![CDATA[
           import mx.collections.ArrayCollection;

           [Bindable]
           private var _data:ArrayCollection;

           private function dtGrid_clickHandler(event:MouseEvent):void {
               if (event.target is Button || null == dtGrid.selectedItem)    return;
               trace(dtGrid.selectedItem.value);
           }

           private function initData_clickHandler(event:MouseEvent):void {
               var array:ArrayCollection = new ArrayCollection();
               for (var i:int = 1; i < 10; i++) {
                   array.addItem({name: "test" + i, value: i});
               }
               _data = array;
           }
           ]]></fx:Script>
    </s:Application>
  • 相关阅读:
    pip不是内部或外部命令也不是可运行的程序或批处理文件的问题
    动态规划 leetcode 343,279,91 & 639. Decode Ways,62,63,198
    动态规划 70.climbing Stairs ,120,64
    (双指针+链表) leetcode 19. Remove Nth Node from End of List,61. Rotate List,143. Reorder List,234. Palindrome Linked List
    建立链表的虚拟头结点 203 Remove Linked List Element,82,147,148,237
    链表 206 Reverse Linked List, 92,86, 328, 2, 445
    (数组,哈希表) 219.Contains Duplicate(2),217 Contain Duplicate, 220(3)
    重装系统
    java常用IO
    端口
  • 原文地址:https://www.cnblogs.com/yangpigao/p/2954918.html
Copyright © 2011-2022 走看看