Ссылки на элементы в шаблоне элемента RadListView

Я использую RadListView и перехватываю событие onItemLoading.

В этом событии я могу ссылаться на отдельные элементы представления внутри itemTemplate.

Я вижу args.view._subViews, но мне было интересно, смогу ли я найти элемент по имени или как-то еще. Я предполагаю, что id не будет работать, потому что у каждого элемента будет один и тот же идентификатор.


person dashman    schedule 17.08.2016    source источник


Ответы (1)


Вы правы, получив идентификатор, вернет только первый. Однако, если у вас есть ссылка на дочернюю группу ListView; использование id будет работать, чтобы вывести элемент из группы.

Теперь, если вы используете мой NativeScript-Dom плагин, это очень просто; вы можете: var elements = RadListView.getElementsByClassName('someClass'); или RadListView.getElementsByTagName('Label'); или более новые функции `

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

И работайте с массивом элементов, соответствующих вашим критериям.

Также обратите внимание, что в ListView не все элементы предустановлены; ListView имеет ровно столько элементов, сколько обычно требуется для заполнения ListView + 1; так что даже если у вас есть 2000 элементов в списке; у вас может быть только 10 фактических дочерних групп элементов ListView. Итак, когда вы сделали GetElementsByTagNames ('Label'), вы получили бы только 10 из них ...

person Nathanael    schedule 18.08.2016
comment
Поскольку я делаю это в событии onItemLoading () и имею доступ к корневому объекту представления, я бы хотел установить корень при выполнении поиска, например runAgainst TagNames () и т. Д. Возможно ли это. или это будет rootView.runAgainst .. (). Это сработает. Где взять этот плагин? - person dashman; 18.08.2016
comment
Да, плагин был разработан для работы с любым корневым представлением, которое вы хотите использовать. По этой причине в данном случае я использовал RadListView в качестве корневого, чтобы показать, что вы можете ограничить его дочерними элементами представления. Вы также можете сделать runAgainstTagNames('Label'); без корня, и он сделает всю страницу. ;-) Теперь о том, где его взять; tns plugin add nativescript-dom добавит его в ваше приложение; репо / документы находятся по адресу github.com/NathanaelA/nativescript-dom, и вы всегда можете найдите любые плагины NS в plugins.nativescript.rocks - person Nathanael; 18.08.2016