cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Blaze
Level: Powered On

Using text value from a slider in a collection

Hi,

 

I have a slider (Min 0, Max 5). I also have a Text label that does a lookup of a data value (from Sharepoint) and shows different wording based on the slider value. I can save to a collection via either collect or patch, however, the text label is often 1 step behind. It seems to be storing the collection before changing the text (tried both onchange and onselect).

 

I also check whether the item already exists in the collection. If it does, I patch one part of it with the new text label (based on the slider), otherwise I create a new record. For info, the slider is in a gallery.

 

Any ideas how I can firstly change the text value and then save to a collection? Thanks.

9 REPLIES 9
Super User
Super User

Re: Using text value from a slider in a collection

Can you share your OnChange/OnSelect formula for the slider?

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://www.thepoweraddict.com
Blaze
Level: Powered On

Re: Using text value from a slider in a collection

Hi,

 

This is what I have on the Slider onselect. Tried on onchange too with no joy.

 

If(Gallery1.Selected.MappingID in Collectmappings.NewMappingID,

Patch(Collectmappings, First(Filter(Collectmappings, NewMappingID = Value(Gallery1.Selected.MappingID))),{Description: Gallery1.Selected.LevelText, TestText: "via Patch: " & Label8.Text}),


Collect(Collectmappings, {NewMappingID: Gallery1.Selected.MappingID, ParentRef: Gallery1.Selected.Parent, ChildRef: Gallery1.Selected.Child, Description: Gallery1.Selected.LevelText, TestText: "via Collect: " & Label8.Text})
)

 

BTW Label8 is a test label that I have which often shows a different text value whilst I've been trying to fault find it.

Super User
Super User

Re: Using text value from a slider in a collection

Also, what do you have as your Text or Default property of Label8? I believe that is dependent on the slider control?

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://www.thepoweraddict.com
Blaze
Level: Powered On

Re: Using text value from a slider in a collection

Label8 is outside the gallery.

 

The Label8.Text property is LevelText.

 

LevelText is a label within gallery1. It's text property is:

 

LookUp('Levels', Level=Slider.Value).Description

Super User
Super User

Re: Using text value from a slider in a collection

Just to make sure I have the entire scenario right:
1. You have a gallery which has a label LevelText for which the text property is
LookUp('Levels', Level=Slider.Value).Description
2. You have another label outside the gallery for which the text property is
LevelText
3. You have a slider control (I assume inside the gallery? If not, please let me know) which when changed does some kind of a Patch
4. Your issue is that the Patch updates the old value of the slider rather than the changed value. Is that correct?

A few questions:

1. Is your form on another screen?
2. Are you simply editing the selected record in the form?
3. What exactly did you try when you set it up differently? As long as you have something defined in the Default property of the gallery, it shouldn't default to the 1st one. Try once with setting the Default property to {} to see if it blanks out Gallery.Selected instead of setting it to the 1st item.
4. Lastly, where you have the SubmitForm function (possibly on the OnSelect of a button), try adding this:
SubmitForm(Form1);Reset(Gallery1)

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://www.thepoweraddict.com
Blaze
Level: Powered On

Re: Using text value from a slider in a collection

Hiya,

 

Regarding your first set of questions.... 1 & 2 correct. 3 yes slider is in Gallery1.
4 both patch and collect seem to often give old slider values. Sometimes it works but often it doesn't.

 

Here are the answers to your other questions: 

1. Is your form on another screen? No
2. Are you simply editing the selected record in the form? It's a gallery. I'm just moving the slider and wanting the new text value to save to a collection, either as a new record if one doesn't exist, or as a patch if it does.
3. What exactly did you try when you set it up differently? As long as you have something defined in the Default property of the gallery, it shouldn't default to the 1st one. Try once with setting the Default property to {} to see if it blanks out Gallery.Selected instead of setting it to the 1st item. Adding {} blanks out the Gallery.
4. Lastly, where you have the SubmitForm function (possibly on the OnSelect of a button), try adding this:
SubmitForm(Form1);Reset(Gallery1). I have a separate Save button outside of the gallery which just does a collect. I don't intend using this as I just want the text value to be automatically updated when the slider is changed. I have however added the Reset(Gallery1) formula and that is resetting the gallery ok but the problem is still there.

 

For info, I have a data table on the same screen, for test purposes, that shows what's in the collection. This is where I can see the text is not updating correctly and seems to be one click behind. 

Blaze
Level: Powered On

Re: Using text value from a slider in a collection

Hi,

 

I did answer your last question quite a while ago, but I can't see my reply. I've added the answers again, apologies if this is in duplicate... My answers are in bold.

 

1. You have a gallery which has a label LevelText for which the text property is
LookUp('Levels', Level=Slider.Value).Description Yes
2. You have another label outside the gallery for which the text property is
LevelText Yes
3. You have a slider control (I assume inside the gallery? If not, please let me know) which when changed does some kind of a Patch Yes, slider is inside gallery
4. Your issue is that the Patch updates the old value of the slider rather than the changed value. Is that correct? Both patch and collect seem to be one value behind. This thread here seems to suggest that slider (to text) has an issue.
(https://powerusers.microsoft.com/t5/Building-Power-Apps-Formerly/How-can-I-connect-text-input-box-to...)

A few questions:

1. Is your form on another screen? No, all on one screen
2. Are you simply editing the selected record in the form? Moving the slider, which is updating the text value, but seems to be one click behind
3. What exactly did you try when you set it up differently? As long as you have something defined in the Default property of the gallery, it shouldn't default to the 1st one. Try once with setting the Default property to {} to see if it blanks out Gallery.Selected instead of setting it to the 1st item. {} blanks out the gallery.
4. Lastly, where you have the SubmitForm function (possibly on the OnSelect of a button), try adding this:
SubmitForm(Form1);Reset(Gallery1) Added a button for this and the gallery resets OK. However, I was trying to get the collection to automatically update as you change the sliders.

 

Super User
Super User

Re: Using text value from a slider in a collection

I don't think that issue should affect you but I could be wrong, I only skimmed through it. And apologies for the gallery question, I mixed up 2 responses I was working on.

Anyways, is there a reason why you want to Patch everytime the slider is moved? I am not sure if that's the best way to do it since it can result in numerous patch instances or occurrences. Can you not patch it once mat be using a button once the slider has been moved? Or at least tey it out that way to see if it works properly then.

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://thepoweraddict.com
Blaze
Level: Powered On

Re: Using text value from a slider in a collection

Hi,

 

Thanks for the reply. I'll try it with a button to see if that helps. Essentially, the gallery could have 15 to 20 sliders (think of it like an internal (no external users) survey) where the user can very quickly select their answers.

I may also test doing a save loop at the end but the Gallery1.Allitems option saves tonnes of additional fields that I don't really want. I'll therefore also see if I can drop unnecessary columns before adding to a collection.

 

If I get any luck then I'll post an update. Thanks again!

Helpful resources

Announcements
thirdimage

New Badges

Check it out!

thirdimage

Power Apps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

Top Solution Authors
Top Kudoed Authors
Users online (6,701)