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 ) } )