Как определить длину списка в RedDot?
У меня есть страница с прикрепленным элементом списка. Как определить количество элементов в этом списке? Можно использовать теги рендеринга, asp или любую другую технику (если она работает!)
3 ответа
Читая документацию по тэгам рендеринга, я думаю, что возможно сделать это лучше
Таким образом, получение элемента списка с помощью этого
Контекст:CurrentPage.Elements.GetElement(lst_myPages).Value
Свойство Value должно возвращать коллекцию страниц для элементов списка, чтобы вы могли
Контекст:CurrentPage.Elements.GetElement(lst_myPages).Value.Count
<!IoRangePreExecute>
<% lst_myPagesSize = 0 %>
<!IoRangeList>
<% lst_myPagesSize = lst_myPagesSize + 1%>
<!IoRangeRedDotMode><!--[if !IE]><%lst_myPages%><![endif]--><!/IoRangeRedDotMode>
<!/IoRangeList>
<!/IoRangePreExecute>
Я думаю, что это самый быстрый способ. Первый счетчик = 0. Затем в диапазоне списка увеличьте счетчик (имейте в виду, что заполнитель списка тоже включается в этот блок). После этого у вас есть значение в счетчике.
По-видимому, единственный способ сделать это состоит в том, чтобы пройтись по списку, считая каждый элемент, например,
<reddot:cms>
<foreach itemname="testList"
object="Context:CurrentPage.Elements.GetElement(lst_myPages).Value"
countername="listCounter">
</foreach>
</reddot:cms>
Длина тогда доступна как:
<%!! Store:listCounter !!%>
В OpenText используйте этот тег рендеринга, чтобы получить длину списка (имя элемента списка: lst_Navigation):
<%!! Context:CurrentPage.GetElementByName(lst_Navigation).GetLinkedContents().Count !!%>
Контекст /RDObj: через ObjectLoader Context (псевдоним: RDObj) вы получаете доступ к объектам Management Server
CurrentPage: возвращает объект страницы с текущей страницы
GetElementByName: метод из объекта страницы для получения элемента страницы по имени
GetLinkedContents: возвращает объект LinkList
Count: возвращает количество элементов LinkList