Hi i have written code like this to get a grid it's a editable grid and for this now when i click add row then complete grid has to be added
how can i write logic for it can anyone help on this
a!gridLayout( labelPosition: "COLLAPSED", headerCells: { a!gridLayoutHeaderCell( align: "LEFT" ), a!gridLayoutHeaderCell( align: "LEFT" ) }, columnConfigs: { a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 5 ), a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 3 ) }, rows: a!forEach( items: ri!crAPPContractExtension_cdt, expression: with( local!SingleREFContractExtension_cdt: index( ri!crREFContractExtension_cdt, wherecontains( fv!item.extensionRefId_int, ri!crREFContractExtension_cdt.id_int ), {} ), a!gridRowLayout( contents: { a!textField( value: fv!item.fieldName_txt, readOnly: true() ), choose( if( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ) = cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[12], 1, if( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ) = cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[1], 2, if( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ) = cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[3], 3, if( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ) = cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[5], 4, if( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ) = cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[4], 5, if( contains( split( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ), ": " ), cons!CR_APP_USERINPUTFIELD_IDENTIFIERS[7] ), 6, 7 ) ) ) ) ) ), choice1: a!radioButtonField( choiceLabels: cons!CR_APP_TXT_CHOICE_LABELS_YES_NO, choiceValues: touniformstring( cons!CR_APP_INT_CHOICE_VALUES ), choiceLayout: "COMPACT", value: fv!item.value_txt, saveInto: fv!item.value_txt, disabled: ri!IsReadOnly_bool ), choice2: a!textField( value: fv!item.value_txt, saveInto: fv!item.value_txt, readOnly: if( index( local!SingleREFContractExtension_cdt, "readOnlyFlag_int", {} ) = 1, true(), false() ) ), choice3: a!dateField( value: fv!item.value_txt, saveInto: fv!item.value_txt, readOnly: if( index( local!SingleREFContractExtension_cdt, "readOnlyFlag_int", {} ) = 1, true(), false() ) ), choice4: a!integerField( value: fv!item.value_txt, saveInto: fv!item.value_txt, readOnly: if( index( local!SingleREFContractExtension_cdt, "readOnlyFlag_int", {} ) = 1, true(), false() ), validations: rule!CR_Fn_setMaximumLengthForInteger( inputText_txt: fv!item.value_txt, maxLength_int: 7 ) ), choice5: a!integerField( value: fv!item.value_txt, saveInto: fv!item.value_txt, validations: rule!CR_Fn_setMaximumLengthForInteger( inputText_txt: fv!item.value_txt, maxLength_int: 7 ), readOnly: if( index( local!SingleREFContractExtension_cdt, "readOnlyFlag_int", {} ) = 1, true(), false() ) ), choice6: a!dropdownField( labelPosition: "COLLAPSED", placeholderLabel: cons!CR_APP_TXT_PLACEHOLDER_VALUE, choiceLabels: remove( split( split( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ), ":" ), ";" ), 1 ), choiceValues: remove( split( split( index( local!SingleREFContractExtension_cdt, "fieldType_txt", {} ), ":" ), ";" ), 1 ), value: fv!item.value_txt, saveInto: fv!item.value_txt ), choice7: a!textField( value: fv!item.value_txt, saveInto: fv!item.value_txt ) ) } ) ) ), shadeAlternateRows: true, addRowLink: a!dynamicLink( value: true(), label: "Add Contract", saveInto: { a!save( ri!crAPPContractExtension_cdt, append( ri!crAPPContractExtension_cdt, 'type!{urn:com:appian:types:NBF}CR_APP_ContractExtension'() ) ) } ) )
Discussion posts and replies are publicly visible