conditional data binding question | Community
Skip to main content
New Participant
July 26, 2018
Solved

conditional data binding question

  • July 26, 2018
  • 6 replies
  • 6707 views

Hi, guys

I'm new bee in LiveCycle Designer. I got questions about conditional data binding question in adobe Live Cycle  designer ES3.

My XML files structure is like following:

<item>

     <Name>name1</Name>

     <Type>A</Type>

     <Amount>10</Amount>

</item>

<item>

     <Name>name2</Name>

     <Type>B</Type>

     <Amount>20</Amount>

</item>

<item>

     <Name>name3</Name>

     <Type>B</Type>

     <Amount>30</Amount>

</item>

........

And now I want to display items only with type= A . How can I get this conditional data binding?

I've already use SOM predicates in item's Data Binding expression like this:  $.item.[Type=='A']   but it return syntax error.

BR, PiPi Li

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by _Bruce_Robertson

Hi,

When you use $.item.[Type=='A'], that is with square brackets then the expression is expected to be a FromCalc expression, which means you need to use double quotes, i.e. $.item.[Type=="A"].  The JavaScript equivalent would be $.item.(Type.value=='B') ... using the round brackets.  I do tend to stick with FormCalc for predicates, it is meant to be a little faster.

Regards

Bruce

6 replies

ulibaehr
New Participant
July 27, 2018

That appears unnecessary to me.

Conditional bindings without any scripting perfectly perform the task. You do not need to script for this kind of task.

I just checked with one of my example forms:

$.Legobrick.[Color<>"green"]

works perfectly to bind only subforms where the underlying element "Color" does not have the value "green".

arthurf48713214
New Participant
July 27, 2018

exactly.

PiPiLeeAuthor
New Participant
July 27, 2018

Hi, Arthur

Thanks for ur reply. Do you mean add check script to Event?

BR, PiPi Li

PiPiLeeAuthor
New Participant
July 27, 2018

Hi Bruce,

$.item.[Type=="A"] still can not work. But the JavaScript predication $.item.(Type.value=='B') works. Thanks so much.

BR, PiPi Li

_Bruce_Robertson
_Bruce_RobertsonAccepted solution
New Participant
July 26, 2018

Hi,

When you use $.item.[Type=='A'], that is with square brackets then the expression is expected to be a FromCalc expression, which means you need to use double quotes, i.e. $.item.[Type=="A"].  The JavaScript equivalent would be $.item.(Type.value=='B') ... using the round brackets.  I do tend to stick with FormCalc for predicates, it is meant to be a little faster.

Regards

Bruce

New Participant
October 12, 2022

Hi,

In case of having items: A, B, C, and  I want to display items with type = A, type = B . How can I get this conditional data binding?

Thanks!

arthurf48713214
New Participant
July 26, 2018

Hi Pipi Li,

i´am not 100% sure but i thing you can use something like this check the value all type of your tree :

$data.resolveNodes('RootNode.item[*].Type') .item(*).value; // i thing for every item, it should return his value then you can check this value ; if ....,item(*).value == "A".

Arthur