Skip to main content
Question

Grid column value disappears when clicking Selected checkbox in Processing screen

  • March 9, 2026
  • 4 replies
  • 128 views

Forum|alt.badge.img

I have a processing screen with PXFilteredProcessingJoin where the main DAC is Customer with LeftJoin<CustomTable> and LeftJoin<Location>.

In the grid I display Location__CPriceClassID field from the joined Location DAC.

Problem: When I click the Selected checkbox on a row, the value in Location__CPriceClassID column disappears. It comes back when I click the checkbox again.

Here is my view

[PXFilterable]
public PXFilteredProcessingJoin<Customer, CustomFilter, 
    LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
    LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>,
    Where<CustomTable.example, Equal<Current<CustomFilter.example>>,
    And<Where<Customer.lastModifiedDateTime, GreaterEqual<CustomTable.LastUpdatedDate>, 
    Or<CustomTable.LastUpdatedDate, IsNull>>>>> Customers;


and delegate

public virtual IEnumerable customers()
{
List<PXResult<Customer, Location, CustomTable>> listCustomers = new List<PXResult<Customer, Location, CustomTable>>();
CustomFilter filter = Filter.Current;
if (string.IsNullOrEmpty(filter.example))
return listCustomers;

PXResultset<Customer, Location, CustomTable> customers = null;
if (filter.example2 == true)
customers = PXSelectJoin<Customer,
LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>
>.Select<PXResultset<Customer, Location, CustomTable>>(this);
else
customers = PXSelectJoin<Customer,
LeftJoin<Location, On<Location.locationID, Equal<Customer.defLocationID>>,
LeftJoin<CustomTable, On<CustomTable.customerID, Equal<Customer.bAccountID>>>>,
Where<CustomTable.example, Equal<Current<CustomFilter.example>>>
>.Select<PXResultset<Customer, Location, CustomTable>>(this);

foreach (PXResult<Customer, Location, CustomTable> custom in customers)
{
Customer customer = (Customer)custom;
CustomTable customRecord = (CustomTable)custom;
CustomerExt customerExt = customer.GetExtension<CustomerExt>();

if (customerExt != null && customerExt.IsActive != true)
continue;

if ((customRecord == null || string.IsNullOrEmpty(customRecord.example)) && filter.example2 == true)
listCustomers.Add(custom);
else if (customer.LastModifiedDateTime >= customRecord.LastUpdatedDate)
listCustomers.Add(custom);
}
return listCustomers;
}

 

4 replies

zherring
Jr Varsity III
Forum|alt.badge.img
  • Jr Varsity III
  • March 9, 2026

There could be many things that affect this. To start I would check that you have implemented Selected checkbox field in you “CustomTable” DAC.


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • March 9, 2026

@zherring  Yes, the Selected checkbox field is already implemented in my CustomTable DAC.


Forum|alt.badge.img
  • Jr Varsity I
  • March 15, 2026

Hi ​@Marat43 ,

The issue is that when you click the ‘Selected’ checkbox, the framework calls ‘Update’ on the primary DAC (Customer), which strips the PXResult wrapper carrying your joined ‘Location’ data - so Location__CPriceClassID goes blank until the delegate re-runs.

Two things to fix this:

1. Stop relying on the join alias for display. Instead of binding the grid column to Location__CPriceClassID, add an unbound string field to CustomerExt (e.g. UsrCPriceClassID) and populate it inside your delegate where you already have the ‘Location’ reference unpacked from the PXResult. Use ‘Cache.SetValue’ to push it into the cache row so it survives checkbox-triggered updates. Then bind your grid column to this extension field instead.

2. It's also worth checking where your Selected field lives. Ideally it should sit on the primary DAC (Customer or CustomerExt) rather than a joined DAC like CustomTable. If it's currently only on CustomTable, that could be contributing to the inconsistent behavior when toggling selection — moving it to CustomerExt should help.

Since the value lives directly on the ‘Customer’ cache row after these changes, it survives row refresh cycles without needing any extra event hooks.

Hope that helps!


darylbowman
Captain II
Forum|alt.badge.img+16

A simple solution to this behavior is to create a PXProjection with the data fields you need, if possible.