如何仅为列表中的项目子集提供披露按钮?

Posted

技术标签:

【中文标题】如何仅为列表中的项目子集提供披露按钮?【英文标题】:How to provide Disclosure button only for a subset of items in a List? 【发布时间】:2013-03-08 06:55:20 【问题描述】:

我有一个要求,我只需要为 Sencha List 中的某些项目添加披露按钮。知道如何做到这一点吗?

将 onItemDisclosure 设置为 TRUE 会为列表中的所有项目启用此选项。但我只想根据特定条件为子集启用它。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

使用列表的disclosureProperty。来自文档:

检查每条记录的属性,以显示每条记录的披露。此属性必须为 false 以防止在项目上显示披露。

默认为:“披露”

因此,您只需在模型中添加名为 disclosure 的字段即可。

Ext.define('MyModel', 
    extend:'Ext.data.Model',

    fields:[//other fields
        
            name:'disclosure',
            convert: function(value, record)
                // logic to determine if disclosure should be displayed.
                // return Boolean value
            
        
    ]
);

【讨论】:

您好,感谢您的快速帮助。我已将调试器放在 convert() 中,但当调试器被击中时,商店没有被加载。我无法用我的逻辑来检查列表行是否需要显示披露按钮。请帮忙。 您的评论不清楚。您是说在调试器中调用了 convert 方法,而不是在加载商店时?或者您是说在调试时永远不会触发转换方法?您如何设置商店和模型?您的商店是使用模型还是只是在商店中指定字段名称列表并让 Ext 自动为您生成模型? 我是 Sencha Touch 的新手。我的商店使用模型文件夹中的模型,当调试器被点击时模型没有加载。 传递给转换函数的value 不是status 的值,它是您的json blob 中的公开属性的值(未定义或null,因为您没有发送它并且正在创建现在从一无所有)。如果要获取状态字段的值,请从传入的记录中获取它。if (record.get('status') === "Live! Train Status") /* ... */

以上是关于如何仅为列表中的项目子集提供披露按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何让披露按钮与 BKSplitView 一起玩得很好

从 UITableViewCell 中的详细信息披露按钮显示 UIPopoverController

如何对 tableview 行进行操作以及如何在其中添加添加披露指示符?

Sencha Touch:单项披露

在 UIButton 上放置一个详细信息披露按钮

如何避免循环遍历 pandas 中的分类变量以查看/操作数据帧切片/子集