You need to sign in to do that
Don't have an account?
Lightning User
can't get field from related record for custom object new override
Hi,
I'm trying to get a field from a parent record named SSOEnabled. if it's true I want to show the password field to be edited. The parent record does have the field SSOEnabled as true. The problem is it's not showing it when I try it out? But if i do a test on a field from the current record it'll work. Anyone know why? Thanks. :smileyhappy:
<apex:page standardController="EAST_SSOCredential__c" title="SSO Credential Edit: New SSO Credential">
<apex:sectionHeader title="SSO Credential Edit" subtitle="New SSO Credential"/>
<apex:form >
<apex:pageBlock title="SSO Credential Edit" id="thePageBlock" mode="edit">
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!save}"/>
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:actionRegion >
<apex:pageBlockSection title="Information" columns="1">
<apex:inputField value="{!EAST_SSOCredential__c.Name}" required="true"/>
<apex:inputField value="{!EAST_SSOCredential__c.Website__c}">
<apex:actionSupport event="onchange" rerender="thePageBlock"/>
</apex:inputField>
<apex:inputField value="{!EAST_SSOCredential__c.Contact__c}"/>
<apex:inputField value="{!EAST_SSOCredential__c.UserID__c}"/>
<apex:inputField value="{!EAST_SSOCredential__c.Password__c}"
rendered="{!EAST_SSOCredential__c.website__r.SSOEnabled__c}"/>
</apex:pageBlockSection>
</apex:actionRegion>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:page standardController="EAST_SSOCredential__c" title="SSO Credential Edit: New SSO Credential">
<apex:sectionHeader title="SSO Credential Edit" subtitle="New SSO Credential"/>
<apex:form >
<apex:pageBlock title="SSO Credential Edit" id="thePageBlock" mode="edit">
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!save}"/>
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:actionRegion >
<apex:pageBlockSection title="Information" columns="1">
<apex:inputField value="{!EAST_SSOCredential__c.Name}" required="true"/>
<apex:inputField value="{!EAST_SSOCredential__c.Website__c}">
<apex:actionSupport event="onchange" rerender="thePageBlock"/>
</apex:inputField>
<apex:inputField value="{!EAST_SSOCredential__c.Contact__c}"/>
<apex:inputField value="{!EAST_SSOCredential__c.UserID__c}"/>
<apex:inputField value="{!EAST_SSOCredential__c.Password__c}"
rendered="{!EAST_SSOCredential__c.website__r.SSOEnabled__c}"/>
</apex:pageBlockSection>
</apex:actionRegion>
</apex:pageBlock>
</apex:form>
</apex:page>
Is returning a List, so If you want to get that value on VF you may need to use apex:repeat to get that value.
<apex:repeat var="case" value="{!EAST_SSOCredential__c.website__r}"> <apex:param name="q" value="{!case.SSOEnabled__c}"/> </apex:repeat>
Hope this works,
Bruno
SSOEnabled__c is a boolean (checkbox) on the parent object Website. Sorry I should have been a little more clear on that.
fields are not queried by thestandard controller if they are not included in the visualforce page. Referencing in the rendered attribute alone doesn't count, I belive. Include the field as an outputField and see if it works.
Agrred with ahab. Use extensions class I have explained on this post. Check how to prepoulate inputfields
http://community.salesforce.com/t5/Visualforce-Development/How-to-re-create-the-Task-page-in-VF-with-whoid-and-whatid/m-p/179676#M23369
You may need small tweaks in constructor. Query the required fields and assign them.
Cheers
Well, I think I'm doing what the last person is saying, but I keep getting this error when I try to create a new SSOCredential:
List has no rows for assignment to SObject
The problem is I want to do this when I'm overriding the new button so I think it's because theres no existing record to go on. I'm just not sure if it's possible to fulfill the goal of getting a field from a parent record that already exists even though the current record hasn't been created yet:
Here is the class:
Here is the page:
This error comes when there is no corresponding record for that id field you are getting from querystring. Make sure id is coming in, that should solve the problem. Let me know
The id of the record won't come in because I'm creating a new record (I'm overriding the new page for the object), so it's impossible. I have to be able to read an existing parent record on a rerender on the child object, but it's just not working!
I understand.
1. If you want the parent record id, then this vf page which is on new button has to be launched from the relatedlist.
The Id I mentioned is the Id of the parent record according to this line of code
String id = ApexPages.currentPage().getParameters().get('Website__c')
String id = ApexPages.currentPage().getParameters().get('Yourobjects parentId');//the above line should be this one.
If you get the parent record Id right. your problem will be solved.
2. But note that, if you are launching the page directly from Object's tab, you can not get the parent Id and the solution will not work
Let me know if this helps.
I have created a workaround using apex trigger to achieve my goal. You are probably right, there is no way to recognize a different object's fields in visualforce without the current object being established. Thanks anyway.