如何防止在列表中选择一个项目 [英] How to prevent an item from be selected in a List

查看:163
本文介绍了如何防止在列表中选择一个项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何防止在列表中选择项目?假设你想用它来显示或其他原因。

解决方案

~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~
解决方案1 ​​

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <无线电通信>
在更改处理程序中调用preventDefault,如下所示:

 < s:List id =listdataProvider = {myCollection}changing =list_changingHandler(event)/> 

列表更改处理程序:

  protected function list_changingHandler(event:IndexChangeEvent):void {
var item:Object = list.dataProvider.getItemAt(event.newIndex);

event.preventDefault();

event.preventDefault();防止项目被选中。如果您使用的是ArrayCollection,则以前的代码允许您获取将要选择的项目。其他类型的数据列表或集合可能略有不同。

~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
解决方案2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 b $ b您也可以通过调用mouseDown事件的stopPropagation方法来阻止在项目渲染器中选择项目,如下所示:

 < s:ItemRenderer xmlns:fx =http://ns.adobe.com/mxml/2009
xmlns:s =library://ns.adobe.com/flex/spark> ;



< / s:ItemRenderer>

~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
解决方案3

~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
@RIAstar在ItemRenderer中提到set enabled为false。


How do I prevent an item from being selected in a List? Let's say you want to use it for display or other reasons.

解决方案

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Solution 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Call preventDefault in the changing handler like so:

<s:List id="list" dataProvider="{myCollection}" changing="list_changingHandler(event)"/>

The List change handler:

protected function list_changingHandler(event:IndexChangeEvent):void {
    var item:Object = list.dataProvider.getItemAt(event.newIndex);

    event.preventDefault();
}

The event.preventDefault(); prevents the item from being selected. The code on the line before allows you to get the item that was going to be selected if you are using an ArrayCollection. It may be slightly different for other types of data lists or collections.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Solution 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also prevent an item from being selected in the item renderer by calling the stopPropagation method on the mouseDown event like so:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" >

    <s:CheckBox id="enabledCheckbox" mouseDown="event.stopPropagation();"/>


</s:ItemRenderer>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Solution 3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @RIAstar mentioned set enabled to false in the ItemRenderer.

这篇关于如何防止在列表中选择一个项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆