Editable grid validation

Certified Senior Developer

I have to validate a editable grid  for the following scenario -

          I have two fields in the grid 1. Role 2. Location

use case - if the user select combination of same role and location as a duplicate then it should thrown an validation error like combination of role and location already exits.

example - if the user select role as developer and location as india and again he adding a new row and selecting the same role and same location it should throw an error   

any one suggest some idea

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    I have much easier way.

    a!localVariables(
      local!array: { { role: null, Location: null } },
      a!gridLayout(
        headerCells: {
          a!gridLayoutHeaderCell(label: "Role"),
          a!gridLayoutHeaderCell(label: "Location")
        },
        rows: a!forEach(
          items: local!array,
          expression: a!gridRowLayout(
            contents: {
              a!dropdownFieldByIndex(
                choiceLabels: { "Abc", "Def", "Ghi" },
                validations: if(
                  count(wherecontains(fv!item, local!array)) > 1,
                  "Combination of role and location should be unique.",
                  {}
                ),
                value: fv!item.role,
                saveInto: local!array[fv!index].role,
                placeholder: "-"
              ),
              a!dropdownFieldByIndex(
                choiceLabels: { "L1", "L2", "L3" },
                validations: if(
                  count(wherecontains(fv!item, local!array)) > 1,
                  "Combination of role and location should be unique.",
                  {}
                ),
                value: fv!item.Location,
                saveInto: local!array[fv!index].Location,
                placeholder: "-"
              )
            }
          )
        ),
        addRowLink: a!dynamicLink(
          label: "Add",
          value: append(local!array, { role: null, Location: null }),
          saveInto: local!array
        ),
        
      )
    )

  • Oh yes. We do not need multiple whereContains(). Nice catch Ujjwal!

Reply Children
No Data