Adding breaks to repeater rows based on sort

repeater-widget

#1

Lets say this is my Table:

NAME . FLAVOR
Item 1 Chocolate
Item 2 Chocolate
Item 3 Chocolate
Item 4 Strawberry
Item 5 Vanilla
Item 6 Vanilla

Is there a way to have Axure sort by flavor and add a break to the repeater for each unique type - so the result would be a table like this:

Item 1 | Item 2 | Item 3
Item 4
Item 5 | Item 6

Thanks!


#2

One way (probably not the only way) would be to have a conditional statement in the repeater that showed the break widget based on, say a 1 or a null/zero in a column in the repeater’s data.

So, you have a data column called “break” and for Item 1, and 2 it would contain “1”, but for Item 3 it would be null (or zero, say). Then you’d have an OnItemLoad conditional statement that said if “break” contains 1 then show the break widget, otherwise hide it.

A bit manual, I admit, but it should do what you want I think.


#3

Thanks! Though not sure I’m following exactly.

I’ve uploaded an .rp file, along with a screenshot of what I’m looking for:

break_example.rp (46.6 KB)

Hoping someone can edit the .rp file to get the desired effect. Thanks!


#4

Ah OK. In that case the solution is still to use conditional statements, but to add blank rows (also note the repeater’s horizontal “wrap” setting) - so rather more klunky,

See this example: break_example.rp (49.8 KB)


#5

Unfortunately the dataset I am actually using changes every day so “padding” the results so the line breaks evenly isn’t an option.

Please consider this an official feature request to break rows by sort. Thanks!


#6

Hm. In that case, you’re probably better off implementing my solution, but as separate repeaters for each Flavour. You’ll need to put each repeater into its own dynamic panel, and then use the “push/pull widgets” function to have them stack correctly (or possibly another method of keeping them correctly stacked). Not that difficult really.

Incidentally, the fact that the “feature” isn’t part of Axure out of the box is, I think, a good thing. It would be unwise (and anyway impossible) for Axure to descend into being a massive library of UI patterns that you had to choose from. That’s for other tools to fail at.

Instead, Axure inhabits the intersection of speed, fidelity and creativity. It allows you to demonstrate almost any UI using fundamental concepts, while insulating you from writing code. And most importantly as you have discovered, it makes few assumptions about what you want because of that.


#7

That is what I am currently doing, but my repeater is more complex than the example I provided and involves some math to resize and reposition certain elements according to the data. So instead of having one repeater doing the calculations, I have 6 repeaters doing the calculations and then filtering to only show the correct “flavor”.

This means that the loading has increased 6-fold. Just a matter of efficiency for my specific case. Thanks for your opinion.


#8

I realize that I may be pressing past Axure’s intended limits, but it would be a huge relief for me if there was a way to break a repeater into rows based on a sort parameter (without the hack of adding blank data/hiding empty results)

Is there any way to achieve this?


#9

With a year and a half passing by, just wondering if anything has changed to enable adding breaks to repeater rows based on sorting (without having to use multiple repeaters) - thanks!


#10

Your “DESIRED OUTCOM” is easy to achieve, but “BONUS” can go the other way, besause Axure uses absolute positioning.

Preview: https://tebz39.axshare.com/#g=1&p=home

Does this solve your problem?


#11

Hi Jorkin. Thanks for the preview! Would you mind posting the RP file so I can inspect a bit more closely?


#12

break_example.rp (61.2 KB)

If your container is fixed length, it is possible to achieve the centering effect you want.