Appian Community and Appian Academy are being upgraded. From July 24–August 3, the Appian Community will be in read-only mode. During this time, the site will be read-only and user registration will be disabled. We apologize for any inconvenience this may cause, but a more secure, stable, and performant Community experience is coming soon!
The new Appian Community launches August 3, followed by Appian Academy on August 7. During the migration, Appian Community Edition, Appian Academy, Documentation, Certifications, Instructor-led Customer Training, Partner Sales Training & Accreditation, and Forum (for Appian Partners and Customers only) will remain available.
We have a dropdown value in the editable grid, and when we click on the add row button in the editable grid we have to get unique values for each row which means already selected value should be removed for next row in the grid dropdown. For your reference below is the first row I selected App Number and I clicked add row , now in the second row dropdown we should not get App number similarly for all rows.
a!gridLayout( label: "DropDown", labelPosition: "ABOVE", headerCells: { a!gridLayoutHeaderCell( label: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".fieldLabelEnglish" ) ), a!gridLayoutHeaderCell( label: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".fieldLabelFrench" ) ), a!gridLayoutHeaderCell(label: "") }, columnConfigs: { a!gridLayoutColumnConfig(width: "MEDIUM"), a!gridLayoutColumnConfig(width: "MEDIUM"), a!gridLayoutColumnConfig(width: "ICON") }, rows: a!forEach( local!systemRecords, { a!gridRowLayout( contents: { a!dropdownField( choiceLabels: { cons!UWG_CONS_TXT_ENGLISH_SYSTEM_DYNAMIC_VALUES }, choiceValues: { cons!UWG_CONS_TXT_ENGLISH_SYSTEM_DYNAMIC_VALUES }, label: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".systemDynamicFields" ), labelPosition: "ABOVE", placeholder: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".genericDropdownPlaceholder" ), value: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'], saveInto: { fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'], a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'], index( cons!UWG_CONS_TXT_FRENCH_SYSTEM_DYNAMIC_VALUES, wherecontains( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'], cons!UWG_CONS_TXT_ENGLISH_SYSTEM_DYNAMIC_VALUES ), null ) ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{804028d2-0a75-4acc-8a7c-909854b876f6}dynamicType'], cons!UWG_CONS_INT_REFERENCE_ID_DYNAMIC_TYPE_SYSTEM ), if( rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'] ), { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], append( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'] ) ) ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'] ) ) }, { if( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'] ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'], replace_with: rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'] ) ) ) } ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{d1a99936-fcc9-4f4e-b689-06a663a738f2}fieldLabelEnglish'] ) )/*French DropDown Population*/ } ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{804028d2-0a75-4acc-8a7c-909854b876f6}dynamicType'], cons!UWG_CONS_INT_REFERENCE_ID_DYNAMIC_TYPE_SYSTEM ), if( rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'] ), { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], append( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'] ) ) ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'] ) ) }, { if( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'] ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'], replace_with: rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'] ) ) ) } ), a!save( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'], rule!UWG_generateAmendmentFormattedTextForDynamicFields( fieldType: cons!UWG_CONS_TXT_FIELD_TYPE_SYSTEM, fieldName: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'] ) ) } ) }, validations: {} ), a!dropdownField( choiceLabels: { cons!UWG_CONS_TXT_FRENCH_SYSTEM_DYNAMIC_VALUES }, choiceValues: { cons!UWG_CONS_TXT_FRENCH_SYSTEM_DYNAMIC_VALUES }, label: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".systemDynamicFields" ), labelPosition: "ABOVE", placeholder: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".genericDropdownPlaceholder" ), value: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'], saveInto: { fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{0298a955-2862-4526-b616-d79f0eaa2a6b}fieldLabelFrench'] }, disabled: true, validations: {} ), a!richTextDisplayField( value: { a!richTextIcon( icon: "times", link: a!dynamicLink( value: "", saveInto: { if( and( ri!isUpdate, not( rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{87562531-2dee-4e70-95c0-2633a2b76590}id'] ) ) ), { if( or( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'] ), rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'] ) ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'], replace_with: "" ) ) } ), if( or( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'] ), rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'] ) ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'], replace_with: "" ) ) } ), a!save( fv!item, a!update( data: fv!item, index: { 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{a5ce96d2-22e4-48d8-8b98-0cbe346855cf}updatedBy', 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{cf9b41d7-6cd2-4580-aab6-b304312c9da6}updatedOn', 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{6056a1f4-5e5e-45cf-a227-29d55e9bd7ce}isActive' }, value: { loggedInUser(), now(), false } ) ), a!save( local!inactiveSystemRecords, append( local!inactiveSystemRecords, local!systemRecords[fv!index] ) ), a!save( local!systemRecords, remove(local!systemRecords, fv!index) ) }, { if( or( not(ri!isUpdate = true()), and( ri!isUpdate, rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{87562531-2dee-4e70-95c0-2633a2b76590}id'] ) ) ), { if( or( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'] ), rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'] ) ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{b6e4949b-f007-4523-b589-97f25058f745}formattedValueEnglish'], replace_with: "" ) ) } ), if( or( rule!GBL_isBlankOrEmpty( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'] ), rule!GBL_isBlankOrEmpty( fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'] ) ), {}, { a!save( ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], /*substitute safe fix for 25.1*/ rule!CL_RULE_safeSubstitute( text: ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'], find: fv!item['recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{31c52958-8917-4eed-8c68-e2c1e8e495b7}formattedValueFrench'], replace_with: "" ) ) } ), a!save( local!systemRecords, remove(local!systemRecords, fv!index) ) }, {} ) } ) } ), linkStyle: "STANDALONE", color: "NEGATIVE" ) } ) } ) } ), selectionSaveInto: {}, addRowLink: a!dynamicLink( label: rule!INZ_I18N_displayLabel( i18nData: local!i18nInterfaceData, bundleKey: cons!INZ_CONS_TXT_INTERFACE_COMPONENT_INTERNATIONALIZATION & ".addField" ), value: "", saveInto: { a!save( local!systemRecords, append( local!systemRecords, 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields'( 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{804028d2-0a75-4acc-8a7c-909854b876f6}dynamicType': cons!UWG_CONS_INT_REFERENCE_ID_DYNAMIC_TYPE_SYSTEM, 'recordType!{9d988a65-60b0-4735-b00d-5caf6ad59c60}UWG Amendment Master Dynamic Fields.fields.{6056a1f4-5e5e-45cf-a227-29d55e9bd7ce}isActive': true ) ) ) } ), validations: {}, shadeAlternateRows: true )
Discussion posts and replies are publicly visible
Hi likhithan,
Here is the sample code to achieve it. Please apply the necessary null handling to avoid errors
a!localVariables( local!choicelist: { "Option 1", "Option 2", "Option 3", "Option 4", "Option 5", "Option 6", "Option 7", "Option 8" }, { a!gridLayout( label: "Editable Grid", labelPosition: "ABOVE", headerCells: { a!gridLayoutHeaderCell(label: "Select") }, columnConfigs: {}, rows: { a!forEach( items: ri!a, expression: a!localVariables( local!rowChoiceList: difference( local!choicelist, difference(ri!a, ri!a[fv!index]) ), a!gridRowLayout( contents: { a!dropdownField( choiceLabels: local!rowChoiceList, choiceValues: local!rowChoiceList, label: "Dropdown", labelPosition: "ABOVE", value: ri!a[fv!index], placeholder: "--- Select a Value ---", saveInto: { ri!a[fv!index] }, searchDisplay: "AUTO", validations: {} ) } ) ) ) }, addRowLink: a!dynamicLink( label: "Add New Item", saveInto: a!save(ri!a, append(ri!a, null())) ), selectionSaveInto: {}, validations: {}, shadeAlternateRows: true ) } )