Table of Contents

Article

Troubleshooting: Repeat grid disregards button Disable When condition

Symptom

Repeat Grid layouts with conditional buttons disregard the specified button condition and enable all buttons in all rows of all pages of the grid. Your application has a work form designed with a paginated Repeat Grid in which the first column of the grid contains the Check Box UI element with an ON CHANGE event set to Post Value, and the last column of the grid contains a button (for example, a button labeled Remove) with a Disabled condition specified for it. Every page of the grid is designed with these columns and, by default, no check box is selected.

When you select the check box in one row of the grid, you expect the button in that row alone to be enabled because the pxCheckbox UI control has the event ON CHANGE set to Post Value. Instead, all of the buttons in all the rows of the grid are enabled. This behavior is unexpected.

Example

Here is an example of the problem.

  1. In this Repeat Grid design form, select a check box of any row in the grid.
    Repeat Grid default with check box and buttons disabled in all rows.
  2. The Remove button is enabled for all rows of Page 1 of the grid. This is unexpected behavior. The Remove button should be enabled only for the selected row of the grid, BBB.
    Repeat Grid with check one row button, all rows buttons enabled
  3. Go to Page 2 of the grid and again selected a check box for one row. You see the same unexpected results: the Remove button is enabled for all rows of the grid when it should be enabled only for the row selected, namely, FFF.
    Repeat Grid next page, same problem

Explanation

The logic for condition handlers in older Pega-provided UI elements is based on the ID value of the property. Therefore, in the Repeat Grid, the Disable condition always fails. Use the Disable When condition on the server instead of the client, which prevents the older logic for condition handlers from being processed.

Solution

Include the button that needs to be enabled in its own section. Then, specify a Refresh When condition on the button based on when the check box property changes. The following screens illustrate how to do this:
Step 1 Layout, Repeat Grid Check Box

Step 2 Section, Enable button

Step 3 When condition EnableButton

Step 4 Layout, Button visible Always

After you perform this local change, you can expect to see the following results at run time. The following screens show that only one row in the grid has a button enabled:
Result 1, Buttons not enabled (default)

Result 2, Selected button enabled, one row

Published October 8, 2014 — Updated March 16, 2016

Related Content

Have a question? Get answers now.

Visit the Pega Support Community to ask questions, engage in discussions, and help others.