web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Looking for BP on Pull...
Power Apps
Answered

Looking for BP on Pulling Items from Gallery

(0) ShareShare
ReportReport
Posted on by 987

I have a gallery of list items (connected to a SharePoint list). I am trying to create a scenario where I can select from one gallery to copy it over to the other. To explain:

 

Imagine I'm making a "recipe card".

On the right is a gallery showing me all the items in the panty (SP list called food inventory)

On the left is a gallery new form for building a recipe card (submitting to a SP list called recipes)

So I want to pick from the list on the right - to add it to the list on the left.

(When I'm done I will "submit" all the ingrediants to the list of recipes connected to the gallery on the left.)

 

I'm really struggling with this one. So, is this possible?

 

Thank you in advance.

Categories:
I have the same question (0)
  • Verified answer
    rgruian Profile Picture
    Microsoft Employee on at

    Yes, it is possible. Assuming you have an "add" button/image/etc in the right gallery that users can press on to "add" the item, I called that control AddButton below, but feel free to use images instead.

     

    RightGallery.Items = 'food inventory'

    RightGallery.AddButton.OnSelect = Collect(items_for_left, ThisItem)

    LeftGallery.Items = items_for_left

     

    Just make sure you create the right controls within RightGallery and LeftGallery to render the fields you care about (the fields in 'food inventory' and items_for_left, respectively).

     

    Note that items_for_left is a collection that will be created for you automatically, with the same schema as your SP list.

     

    I hope this helps!

  • audrieFCT Profile Picture
    987 on at

    This is awesome! I'm going to give it a go now. Being that this will create a many selections to 1 multi-line text field I am also parsing the array from the collection.

     

    Last question on this topic: How could I associate an amount to each selection?

     

    So say I pick apples, and I pick butter....that moves over the the right side into a parsed field that will be submit to SharePoint like this: apples;butter (the old InfoPath merged field idea). How could I specify 2 apples and 1 cup of butter for my apple pie?

     

    Any ideas?

  • rgruian Profile Picture
    Microsoft Employee on at

    Can you please let me know what you mean by "associating an amount to each selection"?

     

    Associating at the input, i.e. where "apples" and "butter" are selectable, presumably is just a matter of having a text input control or a slider for specifying the amount. That specified / typed in / selected amount for each item will end up in the Selection. If you need to collect that amount along with ThisItem, you can do:

     

    RightGallery.AddButton.OnSelect = Collect(items_for_left, ThisItem); Collect(items_for_left, { Amount: AmountSlider.Value })

     

    The rest of the example above still applies. That way, LeftGallery will be bound to a collection that has the same schema as your SP list, plus another field for each row that specifies the amount for that row/item.

     

    Is this what you meant? 

  • audrieFCT Profile Picture
    987 on at

    Yes that's what I meant, but problem is that the receipient text box won't accept the collection as a default value. It says that the data is not matched.

  • rgruian Profile Picture
    Microsoft Employee on at

    In the selector gallery (RightGallery) the textbox needs to be bound to either nothing, or to a field from 'food inventory' that specifies some default amount.

    In the receiving gallery (LeftGallery), the textbox that shows the amount -- if you need to show such a textbox -- needs to be bound to the new field that you've added to the collection, namely Amount.

     

        LeftGallery.AmountLabel.Default = ThisItem.Amount

     

    Textboxes cannot be bound to tabular data sources. They can only render one text field at a time. Galleries are bound to data sources, and the controls within galleries are bound to specified fields, and are automatically replicated by the Gallery for as many rows as needed.

  • audrieFCT Profile Picture
    987 on at

    This is what's giving me the most trouble, because sometimes I need to push more than one item into a text box.

     

    "Textboxes cannot be bound to tabular data sources. They can only render one text field at a time. Galleries are bound to data sources, and the controls within galleries are bound to specified fields, and are automatically replicated by the Gallery for as many rows as needed."

     

    There was another engineer that helped me to concacenate the array, so I'm going to try and combine what you shared with what he shared to get to a solution that will work. (Side Point: I really wish you could just set a field OnChange of another field. I guess I miss that from InfoPath).

     

    Thanks for all of your help!

  • rgruian Profile Picture
    Microsoft Employee on at

    A concatenation aggregation over a table should be very simple:

     

      Concat(table, field & ";")

     

    You can do this over the collection that you've created, for example, i.e. items_for_left.

    I am not sure what format you are hoping to end up with, if you let me know what the end text result needs to look like, perhaps I can guide you through the syntactical complexities.

     

    For example: "apples=2;butter=3"

    Textbox.Default = Concat(items_for_left, ItemName & "=" & Amount & ";")

     

     

  • audrieFCT Profile Picture
    987 on at

    I really appreciate how helpful you are!! I can't post a photo on a public forum (do you want to do a short screen share on skype?). If not, here is how it works:

     

    --There is a sharepoint list "Recipes" with just 2 Fields: Recipe Name (title field), Recipe Ingrediants (multi-line plain text). (this is the TARGET LIST)

    --There is also a sharepoint list "Foods" with food inventory (just includes the title of each food item). (selection source)

    --In every case multiple items will be selected.

     

    In the Power App, I have a tablet size page, on the left is a list of food inventory coming from "Foods", each title is an item of food. (I am using a gallery to see that data, and to select from that data, but will not be changing it at all.) I've add a selection arrow that points to the right where the recipe is being built...

     

    In the right side I have an edit form for the Recipe List. I want the user to be able to name their recipe (in the data card that says Recipe Name), and then select from the food inventory items to build the "ingrediants", with each ingrediant added, I'd also like to include an amount (exactly what you said below "apples=2;butter=3").

     

    When I submit the form on the right I want the Recipe name to show up in the title, and the list of ingrediants to be in the ingrediants field as shown in the bolded string above.

     

    Does that make more sense now?

  • rgruian Profile Picture
    Microsoft Employee on at

    Assuming that Foods has a field called IngredientTitle, the following could be a simple way of doing it. It doesn't have all the corner cases worked out (duplicate recipes, etc), but you get the idea:

     

    FoodsGallery.Items = Foods
    FoodsGallery.AmountSlider.Default = 1
    FoodsGallery.AddButton.OnSelect = Collect(MyRecipe, ThisItem); Collect(MyRecipe, {Amount: AmountSlider.Value})

     

    ResetRecipeButton.OnSelect = Clear(MyRecipe)

     

    RecipeTitle.Default = "My recipe name"

    RecipeIngredients.Default = Concat(MyRecipe, IngredientTitle & "=" & Amount & ";")

     

    SubmitButton.OnSelect = Patch(Recipes, Defaults(Recipes), { 'Recipe Name': RecipeTitle.Text, 'Recipe Ingredients': RecipeIngredients.Text })

     

  • audrieFCT Profile Picture
    987 on at

    You are amazing! I wish I could think as fast as you do! I plan to try that tonight. I will post results in a couple of hours.

     

    THANKS A MILLION for trying to help me out!

     

    Audrie

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 325 Most Valuable Professional

#2
11manish Profile Picture

11manish 165

#3
MS.Ragavendar Profile Picture

MS.Ragavendar 88 Super User 2026 Season 1

Last 30 days Overall leaderboard