Page:
<apex:page controller="DTTestPageController" lightningStylesheets="true">
<apex:pageMessages />
<apex:form id="form">
<apex:pageBlock mode="inlineEdit" id="pageblock1">
<div id="header" class="headerborder">
<p id="title">DT Worksheet</p>
<p id="select">
<apex:selectList size="1" id="filter" value="{!pickValue}">
<apex:actionSupport event="onchange" action="{!GetMedicals}" rerender="table1"/>
<apex:selectOption itemLabel="All" itemValue="All" ></apex:selectOption>
<apex:selectOption itemLabel="Needs Review" itemValue="Review" ></apex:selectOption>
<apex:selectOption itemLabel="Pay" itemValue="Pay"></apex:selectOption>
<apex:selectOption itemLabel="Don't Pay" itemValue="Dont Pay"></apex:selectOption>
</apex:selectList>
<apex:commandButton id="alert" value="Alert" rerender="" action="{!alertUser}"/>
</p>
</div>
<apex:pageBlockButtons location="bottom">
<apex:commandButton id="saveButton" value="Save" rerender="" action="{!saveme}"/>
<apex:commandButton id="cancelButton" value="Cancel" rerender="table1"/>
</apex:pageBlockButtons>
<div class="tableborder" id="border">
<apex:pageBlockTable value="{!lstMedicals}" var="med" id="table1">
<apex:column headerValue="Medical Bill Number" headerClass="headerStyle">
<apex:actionRegion >
<apex:outputLink value="/{!med.Id}" styleClass="link">
{!med.Name}
</apex:outputLink>
</apex:actionRegion>
</apex:column>
<apex:column headerValue="Provider" headerClass="headerStyle">
<apex:actionRegion >
<apex:outputField value="{!med.Provider_Name__c}">
</apex:outputField>
</apex:actionRegion>
</apex:column>
<apex:column headerValue="Pay?" headerClass="headerStyle" id="column1">
<apex:actionRegion id="actionRegion1">
<apex:outputField value="{!med.Disburse__c}" id="pay">
<apex:inlineEditSupport event="onClick" showOnEdit="saveButton,cancelButton"/>
</apex:outputField>
</apex:actionRegion>
</apex:column>
<apex:column headerValue="Notes" headerClass="headerStyle">
<apex:actionRegion >
<apex:outputField value="{!med.Disbursement_Note__c}">
<apex:inlineEditSupport event="ondblClick" showOnEdit="saveButton,cancelButton" id="note"/>
</apex:outputField>
</apex:actionRegion>
</apex:column>
</apex:pageBlockTable>
</div>
</apex:pageBlock>
</apex:form>
Controller:
public class DTTestPageController {
/* private String sortOrder = 'LastName'; */
public string pickValue{get; set;}
public litify_pm__Matter__c matterId{get; set;}
public Id recordTypeId = Schema.SObjectType.Medical_Bill__c.getRecordTypeInfosByName().get('Medical').getRecordTypeId();
public list<Medical_Bill__c> lstMedicals{get; set;}
public DTTestPageController(){
pickValue = 'All';
GetMedicals();
}
public void GetMedicals() {
matterId = [SELECT Id, litify_pm__Principal_Attorney__c, Litigation_Attorney__c FROM litify_pm__Matter__c WHERE Id = :ApexPages.currentPage().getParameters().get('id')];
if (pickValue == 'All') {
lstMedicals = [Select Id, Name, Provider_Name__c, Disburse__c, Disbursement_Note__c from Medical_Bill__c WHERE Matter__c =: matterId.Id AND RecordTypeId =: recordTypeId];
}
else if (pickValue == 'Review') {
lstMedicals = [Select Id, Name, Provider_Name__c, Disburse__c, Disbursement_Note__c From Medical_Bill__c WHERE Matter__c =: matterId.Id AND RecordTypeId =: recordTypeId AND Disburse__c = null];
}
else if (pickValue == 'Pay') {
lstMedicals = [Select Id, Name, Provider_Name__c, Disburse__c, Disbursement_Note__c From Medical_Bill__c WHERE Matter__c =: matterId.Id AND RecordTypeId =: recordTypeId AND Disburse__c = 'Yes'];
}
else if (pickValue == 'Dont Pay') {
lstMedicals = [Select Id, Name, Provider_Name__c, Disburse__c, Disbursement_Note__c From Medical_Bill__c WHERE Matter__c =: matterId.Id AND RecordTypeId =: recordTypeId AND Disburse__c = 'No'];
}
else {
lstMedicals = [Select Id, Name, Provider_Name__c, Disburse__c, Disbursement_Note__c from Medical_Bill__c WHERE Matter__c =: matterId.Id AND RecordTypeId =: recordTypeId];
}
}
public pagereference saveme()
{
try
{
System.debug(lstMedicals);
update lstMedicals;
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM,'Medical Bill List Updated!'));
}
catch(DmlException ex)
{
ApexPages.addMessages(ex);
}
return NULL;
}
/* public void sortByFirstName() {
this.sortOrder = 'LastName';
} */
public void alertUser() {
Id profileId=userinfo.getProfileId();
String profileName=[Select Id,Name from Profile where Id=:profileId].Name;
Id ownerId;
String assignedRole;
String subject;
if (profileName == 'Disbursements Team' || profileName == 'Disbursements Team Lead') {
if (matterId.Litigation_Attorney__c == null) {
ownerId = matterId.litify_pm__Principal_Attorney__c;
}
else {
ownerId = matterId.Litigation_Attorney__c;
}
assignedRole = 'Attorney';
subject = 'Verify The List Of Medical Bills We Are Paying Is Correct';
}
else {
ownerId = '0056A000000mKxc';
assignedRole = 'Disbursements';
subject = 'The Attorny Has Reviewed The List of Medical Bills';
}
Task taskRecord = new Task();
taskRecord.OwnerId = ownerId;
taskRecord.Assigned_Role__c = assignedRole;
taskRecord.Subject = subject;
taskRecord.WhatId = matterId.Id;
taskRecord.litify_pm__Matter__c = matterId.Id;
taskRecord.ActivityDate = System.today();
taskRecord.Priority = 'Normal';
insert taskRecord;
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM,'Alert Sent!'));
}
}
You can use apex:inlineeditsupport and set event attribute to single clickhttps://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_inlineEditSupport.htm