【问题标题】:Referencing elements in RadListView itemtemplate引用 RadListView 项模板中的元素
【发布时间】:2016-12-24 14:14:22
【问题描述】:

我正在使用 RadListView 并拦截 onItemLoading 事件。

在该事件中,我可以引用 itemTemplate 中的各个视图元素吗?

我看到了 args.view._subViews - 但我想知道是否可以通过名称或其他方式找到元素。我认为 id 不起作用,因为每个项目都有相同的 id。

【问题讨论】:

    标签: nativescript radlistview


    【解决方案1】:

    你是正确的,通过 Id 只会返回第一个。但是,如果您有对 ListView 子组的引用;使用 id 可以将元素从组中取出。

    现在,如果你使用我的NativeScript-Dom 插件,那就很简单了;你可以做: var elements = RadListView.getElementsByClassName('someClass');RadListView.getElementsByTagName('Label'); 或更新的功能`

    RadListView.runAgainstTagNames('Label', function(element) { /* do something with this element */ });

    并使用符合您的条件的元素数组。

    还请注意,在 ListView 中并非所有元素都是预设的; ListViews 通常只需要填充 ListView + 1 的元素;所以即使列表视图中有 2,000 个项目;您可能只有 10 个实际的子 ListView 元素组。因此,当您执行 GetElementsByTagNames('Label') 时,您只会得到其中的 10 个......

    【讨论】:

    • 因为我在 onItemLoading() 事件中执行此操作并且可以访问根视图对象 - 我想在进行类似 runAgainst TagNames() 等搜索时设置根。这可能吗.或者那会是 rootView.runAgainst..()。那会奏效。我在哪里可以得到这个插件?
    • 是的,该插件旨在运行您想要使用的任何根视图。这就是我在这种情况下使用“RadListView”作为根的原因,以表明您可以将其限制为视图的子视图。您也可以在没有 root 的情况下执行runAgainstTagNames('Label');,它将执行整个页面。 ;-) 现在到哪里得到它; tns plugin add nativescript-dom 会将其添加到您的应用中; repo/docs 位于github.com/NathanaelA/nativescript-dom,你总是可以在plugins.nativescript.rocks找到任何NS插件
    猜你喜欢
    • 2017-07-20
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2023-03-20
    • 2013-04-16
    相关资源
    最近更新 更多