@Jaewoo
Not clear if you want three columns in the repeater dataset or three columns in your repeater widgets (what gets displayed.) I created both.
extract_value_from_list_preserve_order_v2.rp (116.4 KB)
With three columns in the dataset and one display column, we just have to concatenate the values into one string. Axure makes this easy (I think) and you can see how I did this in the OnItemLoad event: Set text on carModel equal to "[[Item.Year]] [[Item.Brand]] [[Item.Model]]"
However, this made it harder to then create the v_carList string dynamically, because we have three columns of data to again concatenate when adding or removing a car selection by clicking it. To simplify things, I added another global variable, named v_carTemp and do the concatenation in the OnClick event before selecting the carModel widget. I then use the v_carTemp value to add or remove an item to v_carList.
With three display columns, things work similarly. I created three widgets in the repeater, one for Year, one for Brand, one for Model. and grouped them. I assign the OnClick to the group so that clicking anywhere on the row will select the whole row. Unfortunately, Axure does not have OnSelect and OnUnselect events available for groups, so those events have to be on individual widgets. I decided to create a fourth widget to serve as a background for the whole row and place it in back. When it is selected it adds the row’s data to the list and when unselected it removes that data. This widget also allows the whole row to show with the “white on gray” selection style. Oh, I also needed to set the default style for carYear, carBrand and carModel widgets to no fill in order to allow the background to show when selected. The carBackground widget may be hard to find at first because it is white on white, but if you click into the group and keep clicking it will eventually be highlighted. Hope that makes sense.