Hello,
I'm revisiting a filtering issue I've had with my app that I haven't been able to figure out. I originally posted a question to the topic a few months back and thought I would receive help, but it didn't happen. Anyways, I'm still in the same boat and having the ability to dynamically filter my gallery WITHOUT the use of a collection would improve the user friendliness of it.
What I have is a Gallery named SearchGallery_2 with the below Items coding. This coding looks at my scan button, text input field and a checkbox to filter what I'm looking for, and does a great job at it as is.
If(PendingCheckbox_1.Value=false,
SortByColumns(
FirstN(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith(LocationBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
2000),
"CategoryBK",Ascending,
"Holder",Ascending,
"ManufacturerBK",Ascending),
SortByColumns(
FirstN(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith(LocationBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
2000),
"TransferStatus", Ascending,
"CategoryBK",Ascending,
"Holder",Ascending,
"ManufacturerBK",Ascending)
)
I also have a filter button that produces a pop-up with two dropdowns along with an Apply Filter Button and Clear Filter Button.

FilterByDD Dropdown Items:
["Category","Holder","Location","Manufacturer","Model","Status"]
FilterOptionDD Dropdown Items:
If(FilterByDD.SelectedText.Value="Category",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
CategoryBK),Result),
If(FilterByDD.SelectedText.Value="Holder",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
Holder),Result),
If(FilterByDD.SelectedText.Value="Location",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
LocationBK),Result),
If(FilterByDD.SelectedText.Value="Manufacturer",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
ManufacturerBK),Result),
If(FilterByDD.SelectedText.Value="Model",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
ModelBK),Result),
If(FilterByDD.SelectedText.Value="Status",
Sort(
Distinct(
Filter('All Asset List',
!(IsBlank(SearchTextBox_1.Text) && IsBlank(SearchPopupBarcodeScanLbl_1.Text)) &&
(IsBlank(SearchPopupBarcodeScanLbl_1.Text) || 'ScanTag#'=SearchPopupBarcodeScanLbl_1.Text) &&
(IsBlank(SearchTextBox_1.Text) ||
StartsWith('Transfer Status', SearchTextBox_1.Text) ||
StartsWith('ScanTag#', SearchTextBox_1.Text) ||
StartsWith(Holder, SearchTextBox_1.Text) ||
StartsWith(CategoryBK, SearchTextBox_1.Text) ||
StartsWith(ManufacturerBK, SearchTextBox_1.Text) ||
StartsWith('Serial#', SearchTextBox_1.Text))),
Status.Value),Result)
)
)
)
)
)
)
What I'm trying to accomplish (again, without using a collection):
1. Utilize the SearchGallery_2 Items AS IS
2. When clicking the Apply Filter (FilterAPPLYBTN) Button, further filter the SearchGallery_2 items based on the Filter By (FilterByDD) and Option (FilterOptionDD) dropdown selections.
3. When clicking the Clear Filter (FilterCLEARBTN) Button, restore the original SearchGallery_2 items before applying the additional filter.
I hope I provided all the info needed to help give the complete picture of what I have and what I'm trying to do. I'm hoping someone can help solve this riddle.