A lazy question (Searching multiple inline lists)

I think know the answer already but just to ask if anybody has found a work-around. I’d like to have a search bar on my home page that searches an inline list but this inline list won’t be on my home page! I vaguely recollect a mention of a joined list at the start of a relation but am unsure what this actually means!? Thanks in advance.

Hi Anthony,

So your situation is you have an inline list on your screen but items on that inline list will only be visible when you do a search?

If you’re looking for what @ThinhDinh described, then it can be done. To my knowledge you’d have to build your own search column. I did this fix for the Glidegram template on the Search tab. Users can explore random posts, but when they type into the search field, the inline list of profiles appears only if it matches the search criteria.

chrome-capture (2)

To do this I did the following steps:

  1. Created a user-specific column called “searchvalue” - this will be the field users type into to search

  2. For the inline list I want to show, in my case userProfiles, I navigate to that tab and pull in the search value using a Single Value Data column.

  3. Then, I create an IFTHEN column to determine if the inline list is “inSearch?” the screenshot is below. You can whatever fields you’d like to be include when searching, but be sure to set is so that if the field contains anything from the “searchValue” column, it appears.

  4. Lastly, I set the visibility of the inline list to appear when the “searchValue” is not empty and filter it so that items only appear if the search matches the criteria set in step 3

12 Likes

Thank you @Lisa for explaining this. This is going to be helpful. Bookmarked!

1 Like

Hey @ThinhDinh. I think that’s what I mean! The inline list will simply be too large to have on the landing page but would like to a search bar on the landing page to search a master list if that makes sense. Sorry for my delayed reply.

1 Like

Eh … if this works it’ll be amazing. Thanks @Lisa! I think my issue might be that the inline list I want users to search won’t actually exist on the screen (if that makes sense).

So if you don’t have an inline list component, how will you display any results? :wink:

All you really need to do is dynamically build a relation based on user input, and use that relation as a source for an inline list component. Using that approach, you can pull data from anywhere in your app. If you need to pull from multiple tables, then you’d need multiple relations and multiple inline lists, but they’d appear as though they were a single list on the screen.

The thing to note (and Lisa mentioned this) is that you don’t use the built-in search that comes with inline lists. Instead you add a text entry component that writes to a user specific column, and this acts as the “search box”. Then you cast that to whichever table holds the data to be searched using a single value column and build logic using if-then-else within that table to filter rows. Build a relation to those rows, and you’re done.

5 Likes

I know I know @Darren_Murphy:slightly_frowning_face:! Thanks for this. I’ll give it a go. I’m only searching across to columns on the same sheets so it can’t be that hard!

I was just thinking about this - you could probably make good use of the Text Length plugin here.

So let’s say for example you don’t want to return any results until the user types at least 3 characters.

  • In your target table (the one that contains the data to be searched), you first add the single value column as previously mentioned.
  • Then add a text length column that returns the length of the single value column
  • Next the if-then-else column:
    – If length of single value is less than 3, then empty
    – If ColumnA includes single value, then true
    – If ColumnB includes single value, then true
    – Repeat for each column to be searched
  • Back in the working table (the one that contains the user specific column), add a template column that contains just the word true
  • Finally, create a multi-relation that joins that template column to the if-then-else column in the target table

And that should do it, I think.

7 Likes

I’m confident it will work for you :wink: As Darren, said the inline list HAS to exist on the page, but you can control the visibility of when it shows along with what results pop up.

If your inline list has that many records, pair my solution with the TextLength columns added to the IFTHEN column that @Darren_Murphy mentioned and you’ll have yourself a nice search box.

5 Likes

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.