5

On the Case object, I have a lightning component that displays only the fields of interest depending on the Status of the case. I have a separate Change_Status_To__c dependent picklist that actually controls what options are available to the user for updating the status (and automation in the backend actually changes the status).

I'm currently using lightning:recordForm to display the relevant fields, and would like to display just the Status field as read only. Is there anyway to single out/access this field and set it as read only?

All other fields should be editable, and would like to avoid using lightning:recordEditForm if possible

2
  • 1
    How are you passing fields to the recordform component is it through fields or reading fields from layout?.
    – RedDevil
    Commented May 12, 2019 at 19:45
  • Through fields. I'm updating them dynamically based on the current Status, and I basically use an aura:if to turn off / on the component to load the fields properly. Otherwise there's weird behavior that the new fields just add on to the existing fields on the recordForm component Commented May 13, 2019 at 11:58

2 Answers 2

4

You won't be able to make a field read only specifically while using lightning:recordForm. It's either all fields or none which you could display as read only depending on the mode selected. The component operates based on the field level security, so if a field is not read only for a User, you cannot make one as read only on the component. Additionally there's not much support for client side validation on this component.

Your only option here as far as I can say is to utilize lightning:recordEditForm.

4
  • if for pulling fields layout is used and in the layout if we mark the field read only will that not work?
    – RedDevil
    Commented May 13, 2019 at 7:53
  • I can't use the layout option because the fields are being adjust dynamically based on what status we're currently on Commented May 13, 2019 at 11:55
  • 1
    @JayantDas That's what I figured, and it's good to get a consensus that lightning:recordEditForm is the only way to go Commented May 13, 2019 at 11:57
  • 2
    @BrianMiller - if you are using filelds then jayant's answer is perfect
    – RedDevil
    Commented May 13, 2019 at 11:59
1

Are you using the Fields / layoutType attributes for displaying the Fields . My suggestion would be to take out Status field from the above fields/Layout and display it using lightning:outputField. You're not submitting it as an editable form field anyways.

2
  • 1
    You can't use lightning:outputField in lightning:recordForm. Looks like I'll need to switch to lightning:recordEditForm Commented May 13, 2019 at 11:56
  • 1
    I meant using the lightning:outputField outside the lightning:recordForm. But then, you'll have to fetch its value. You can also use Both lightning:recordEditForm and lightning:recordForm in the same page to achieve it. That way your existing code works as it is. But yeah, if you can switch/convert to lightning:recordEditForm, then its the best bet. Commented May 14, 2019 at 13:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .