You need to sign in to do that
Don't have an account?
吉田 丈治
Visualforceページにリレーションの貼ってある情報を表示したい
http://www.saaspie.com/2015/03/02/filtering-records-related-list-using-visualforce/
ここに書いてある事とほぼおなじなのですが、リストが表示されず、どこが間違っているのかご教示下さい。こちらとの違いはカスタムオブジェクトを用いているという部分です。
カスタムオブジェクト ObjectA
にリレーションが貼ってあり
Aに対して、子となるカスタムオブジェクト ObjectBが複数存在するとします。
ObjectBには、カスタム項目で参照関係が登録してあり、ObjectBtoA__c という項目にObjectAのIdが指定されているとします。
class
VisualforcePage
https://myOrg.visual.force.com/apex/getBfromA?id=*******obj_aのid******
こんなURLでアクセスしています。
ログを見たところ、this.obj_aまでは取れているようでした
ページ側には空のapex:pageBlockが表示されます。
何がまずいのでしょうか。
ここに書いてある事とほぼおなじなのですが、リストが表示されず、どこが間違っているのかご教示下さい。こちらとの違いはカスタムオブジェクトを用いているという部分です。
カスタムオブジェクト ObjectA
にリレーションが貼ってあり
Aに対して、子となるカスタムオブジェクト ObjectBが複数存在するとします。
ObjectBには、カスタム項目で参照関係が登録してあり、ObjectBtoA__c という項目にObjectAのIdが指定されているとします。
class
public class getBFromA { public ObjectA__c obj_a; public List <ObjectB__c> obj_bs { get; set; } public getBFromA(ApexPages.StandardController controller) { this.obj_a = (ObjectA__c)controller.getRecord(); } public List<ObjectB__c> getBonlyA(){ obj_bs = new List <ObjectB__c> (); obj_bs = [SELECT Id, Name FROM ObjectB__c WHERE ObjectBtoA__c = :obj_a.Id ]; System.debug('ObjectB' + obj_bs); return obj_bs; } }
VisualforcePage
<apex:page standardController="ObjectA" extensions="getBFromA" title="getBFromA"> <apex:form > <apex:pageBlock title="getBFromA" id="getBFromA"> <apex:pageBlockTable value="{!obj_bs}" var="b"> <apex:column value="{!b.Id}"/> <apex:column value="{!b.Name}"/> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
https://myOrg.visual.force.com/apex/getBfromA?id=*******obj_aのid******
こんなURLでアクセスしています。
ログを見たところ、this.obj_aまでは取れているようでした
15:11:03:017 VARIABLE_ASSIGNMENT [5]|this.obj_a|{"s":1,"v":{"CurrencyIsoCode":"JPY","Id":"*******obj_aのid******","Name":"ObjectAの名前"}}|0x4f25b83e
ページ側には空のapex:pageBlockが表示されます。
何がまずいのでしょうか。
以下のようにしてみてはどうでしょうか。
記載いただいたプログラムですと、getBOnlyAがどこからも呼び出されていないので、
空で表示されていたのだと思います。
コンストラクタの中で、getBOnlyAを呼び出してあげれば、テーブルに値が表示されるかと思います。
All Answers
以下のようにしてみてはどうでしょうか。
記載いただいたプログラムですと、getBOnlyAがどこからも呼び出されていないので、
空で表示されていたのだと思います。
コンストラクタの中で、getBOnlyAを呼び出してあげれば、テーブルに値が表示されるかと思います。
本当にありがとうございます。
頂いたコードで試してみたところ、無事に解決致しました!
初歩的な質問だったと思うのですが、助言いただきありがとうございました。
勉強続けたいと思います。