Привет всем!
ситуация проста:
страница со стандартным контроллером. Нужно словить момент, когда связанных записей нет, и вывести сообщение об этом:
<apex:outputPanel rendered="{! IF( Record__c.Relation_with_many_records__r = null, true, false)}">
Проблема в том, что даже если у текущей записи нет связанных, дочерних записей, то Relation_with_many_records__r все равно [b]не равно[/b] нул.
если попробовать так:
Record__c.Relation_with_many_records__r[0] = null
то код падает.
надо подумать.
[quote="Den Brown"]Привет всем!
ситуация проста:
страница со стандартным контроллером. Нужно словить момент, когда связанных записей нет, и вывести сообщение об этом:
<apex:outputPanel rendered="{! IF( Record__c.Relation_with_many_records__r = null, true, false)}">
Проблема в том, что даже если у текущей записи нет связанных, дочерних записей, то Relation_with_many_records__r все равно [b]не равно[/b] нул.
если попробовать так:
Record__c.Relation_with_many_records__r[0] = null
то код падает.
надо подумать.[/quote]
<apex:outputPanel rendered="{!Record__c.Relation_with_many_records__r.size ==0}"> пробуй :)
удивительно, но не получается!
Error: Invalid field 'size' for SObject 'Child_Record__c'.
('Child_Record__c' образуют связь 'Relation_with_many_records__r' с 'Record__c' в данном примере).
[quote="wilder"]
<apex:outputPanel rendered="{!Record__c.Relation_with_many_records__r.size ==0}"> пробуй :)[/quote]
[b]удивительно, но не получается![/b]
[i]Error: Invalid field 'size' for SObject 'Child_Record__c'.[/i]
('Child_Record__c' образуют связь 'Relation_with_many_records__r' с 'Record__c' в данном примере).
.empty тоже воспринимается как поле :(
Посмотри в IDE должно быть название связи иногда они отличаются от стандартных.
[quote="Den Brown"][quote="wilder"]
<apex:outputPanel rendered="{!Record__c.Relation_with_many_records__r.size ==0}"> пробуй :)[/quote]
[b]удивительно, но не получается![/b]
[i]Error: Invalid field 'size' for SObject 'Child_Record__c'.[/i]
('Child_Record__c' образуют связь 'Relation_with_many_records__r' с 'Record__c' в данном примере).
.empty тоже воспринимается как поле :([/quote]
Посмотри в IDE должно быть название связи иногда они отличаются от стандартных.
Посмотри в IDE должно быть название связи иногда они отличаются от стандартных.
оба объекта кастомные. название правильное - обратившись вот так:
Record__c.Relation_with_many_records__r
я вывожу <apex:repeat>ом все эти связанные записи (и это на станд контроллере - удобно).
но size воспринимется как поле
PS: сделал так, на странице есть ВФ переменая которая считает кол-во итераций <apex:repeat>, и просто в конце всего я поставил секцию которая рендерится если ВФ переменная не изменилась.
[quote="Sergey Prichepo"]
Посмотри в IDE должно быть название связи иногда они отличаются от стандартных.[/quote]
оба объекта кастомные. название правильное - обратившись вот так:
Record__c.Relation_with_many_records__r
я вывожу <apex:repeat>ом все эти связанные записи (и это на станд контроллере - удобно).
но size воспринимется как поле
PS: сделал так, на странице есть ВФ переменая которая считает кол-во итераций <apex:repeat>, и просто в конце всего я поставил секцию которая рендерится если ВФ переменная не изменилась.
Подожди, какие итерации считать? Первый раз в своей практике такое слышу. Чем. SIZE для List не устраивает? !ВАЖНО .SIZE именно большими буквами и без скобок в конце. Это прекрасно поможет для Related Objects.
Подожди, какие итерации считать? Первый раз в своей практике такое слышу. Чем. SIZE для List не устраивает?
!ВАЖНО .SIZE именно большими буквами и без скобок в конце. Это прекрасно поможет для Related Objects.
Подожди, какие итерации считать? Первый раз в своей практике такое слышу. Чем. SIZE для List не устраивает? !ВАЖНО .SIZE именно большими буквами и без скобок в конце. Это прекрасно поможет для Related Objects.
[quote="Dmitry Shnyrev"]Подожди, какие итерации считать? Первый раз в своей практике такое слышу. Чем. SIZE для List не устраивает?
!ВАЖНО .SIZE именно большими буквами и без скобок в конце. Это прекрасно поможет для Related Objects.[/quote]
вот фрагмент:
<apex:pageBlock rendered="{!Record__c.Childs__r.SIZE=0}" >
и снова пишет, что нет там такого поля как size
а итерации я считаю для других целей - правильно рубить пдф-страницы.
просто решил использовать ту переменную
Не работает. Вы сами попробуйте, друзья. просто создайте страницу на станд контроллере кастомного объекта у которого есть дочерний кастомный объект, пройдите по связи и добавьте .SIZE==
Не работает. Вы сами попробуйте, друзья.
просто создайте страницу на станд контроллере кастомного объекта у которого есть дочерний кастомный объект, пройдите по связи и добавьте .SIZE==
Даже ради любопытства попробовал:
Тестовый контроллер
public class testRelatedSizeCtrl { public List<Account> getAccounts() { return [SELECT Id, Name, (SELECT Id, Name FROM Contacts) FROM Account]; } }
GenePoint -1 contact United Oil & Gas, UK -1 contact United Oil & Gas, Singapore -2 contacts Edge Communications -2 contacts Burlington Textiles Corp of America -1 contact Pyramid Construction Inc. -1 contact Dickenson plc -1 contact Grand Hotels & Resorts Ltd -2 contacts Express Logistics and Transport -2 contacts University of Arizona -1 contact United Oil & Gas Corp. -4 contacts sForce -2 contacts ZontLaw Portal -No contacts Community Account -5 contacts
Два отличия:
- страница на только стандартном контроллера (т.е. нет "рукописного" контроллера) (кстати - удобно, что по связи пройти можно и ничего не писать).
- оба объекта - полностью кастомные.
- страница на только стандартном контроллера (т.е. нет "рукописного" контроллера) (кстати - удобно, что по связи пройти можно и ничего не писать).
хм, интересно. У меня тогда подозрение на lazy load данных. Т.е. ты говоришь что вывести подчиненных в repeat ты можешь, а когда ставишь .SIZE ругается? Будет минута проверю.
Но мой совет, не надейся на стандартный функционал. Если делаешь страницу на стандард контроллере например чтобы вставить в layout, то прикручивай extension и работай с данными из него. В своей многолетней практике у меня не было ни одной страницы без контроллера или extension
[quote="Den Brown"]- страница на только стандартном контроллера (т.е. нет "рукописного" контроллера) (кстати - удобно, что по связи пройти можно и ничего не писать).
[/quote]
хм, интересно. У меня тогда подозрение на lazy load данных. Т.е. ты говоришь что вывести подчиненных в repeat ты можешь, а когда ставишь .SIZE ругается? Будет минута проверю.
Но мой совет, не надейся на стандартный функционал. Если делаешь страницу на стандард контроллере например чтобы вставить в layout, то прикручивай extension и работай с данными из него. В своей многолетней практике у меня не было ни одной страницы без контроллера или extension
- страница на только стандартном контроллера (т.е. нет "рукописного" контроллера) (кстати - удобно, что по связи пройти можно и ничего не писать).
хм, интересно. У меня тогда подозрение на lazy load данных. Т.е. ты говоришь что вывести подчиненных в repeat ты можешь, а когда ставишь .SIZE ругается? Будет минута проверю.
Но мой совет, не надейся на стандартный функционал. Если делаешь страницу на стандард контроллере например чтобы вставить в layout, то прикручивай extension и работай с данными из него. В своей многолетней практике у меня не было ни одной страницы без контроллера или extension
И очень зря Очень удобно использовать стандартный контроллер на странице без дополнительного кодирования.
[quote="Dmitry Shnyrev"][quote="Den Brown"]- страница на только стандартном контроллера (т.е. нет "рукописного" контроллера) (кстати - удобно, что по связи пройти можно и ничего не писать).
[/quote]
хм, интересно. У меня тогда подозрение на lazy load данных. Т.е. ты говоришь что вывести подчиненных в repeat ты можешь, а когда ставишь .SIZE ругается? Будет минута проверю.
Но мой совет, не надейся на стандартный функционал. Если делаешь страницу на стандард контроллере например чтобы вставить в layout, то прикручивай extension и работай с данными из него. В своей многолетней практике у меня не было ни одной страницы без контроллера или extension[/quote]
И очень зря :) Очень удобно использовать стандартный контроллер на странице без дополнительного кодирования.
И очень зря Очень удобно использовать стандартный контроллер на странице без дополнительного кодирования.
Понимаю :). Но душа не лежит - не люблю "магию". Предпочитаю все контролировать, Запрос->контроллер->страница
[quote]И очень зря :) Очень удобно использовать стандартный контроллер на странице без дополнительного кодирования.[/quote]
Понимаю :). Но душа не лежит - не люблю "магию".
Предпочитаю все контролировать, Запрос->контроллер->страница