how do I use a wild card with a repeating row?

Nathan_Ford 15-03-2016

Hello, I have a form with a table that contains a repeating row.

The table is populated from an xml import.

I would like to hide one of the columns based on a dropdown, but the [*] Wildcard does not work

Please help me with the var i " + i + " code to acheive this

if ($.boundItem(xfa.event.newText) == "stephenw@babybunting.com.au") {

  this.resolveNode("Body.Table.HeaderRow.QLD").presence = "hidden";

  this.resolveNode("Body.Table.Row[*].QLD").presence = "hidden";

  this.resolveNode("Body.Table.FooterRow.TotalQLD").presence = "hidden";

  Subform1.Body.Table.columnWidths="15mm 30mm 55mm 15mm 15mm 15mm 15mm 15mm 15mm";

}

Thanks

Nathan

Mark Solution

Are these answers useful?
Help other community members by marking useful answers as accepted.

Accepted Solutions (0)

Answers (4)

Answers (4)

Nathan_Ford 16-03-2016

Thankyou both for the reply, that's exactly what I was looking for.

How do I put the for statement inside the if statement

trying this

var oRows = xfa.resolveNodes("Body.Table.Row[*]"); 

if ($.boundItem(xfa.event.newText) == "stephenw@babybunting.com.au") {

for (var i = 0; i < oRows.length; i += 1) { 

    oRows.item(i).QLD.presence = "hidden";

}

radzmar
MVP
16-03-2016

You can also use the asterisk wildcard in JavaScript when you the resolveNodes method.


var oRows = xfa.resolveNodes("Body.Table.Row[*]");


for (var i = 0; i < oRows.length; i += 1) {


    oRows.item(i).QLD.presence = "hidden";


}


For more information about this mehtod read this post.

resolveNode vs. resolveNodes

Magus069
MVP
16-03-2016

Hi there,

you could use FormCalc instead to use the [*], I think this could work...

if not, here is the loop you need

Hope this will help