locked
Separate pages or user controls?

    Question

  • 'Search' is a major aspect of my application.

    Search features a 'search' box, several filters and a number of views.  Search results are hierarchical so the initial page of results contains high level information under which there may be one or more levels of detail.

    To illustrate, imagine searching for skills whereby you enter a skill ('c#') and the first result layer is all the companies containing someone with those skills, after which you can drill down to the departments with those people, then the people and perhaps then the projects they've done.  The filters might be for level (manager, code grunt...), years experience, availability and so on.

    The filters can be applied regardless of the level being viewed - changes to the filters apply immediately at the viewed level.

    That's the background (sorry to go on!). 

    From a UI perspective, I can either put the search box and filters in the top right of the frame and or under the title and then have the section contain the results with drill down as needed, or put I can the search box and filters to the left of the results and keep them there as the right part changes as the user drills down (and returns).

    From a code perspective I can make every level of the drill-down a separate page and copy across the searchbox and filter data (well bind them to the same entities I guess) or I can have a master page containing these things and then a sub-page (User Control/ Wizard) which is changed as user drills down / goes back.

    From what I've read it seems that putting anything much beside the title in the top area is pretty much a no-no.  Is this correct or is this just the way things work for most applications?  The search, filters and views will probably end up being 6 - 8 things to show.

    Are there any design examples which conform to this type of usage? 

    On the code side, it's clear enough how to do this with separate pages (though annoying to have to replicate each time).  However, if I want to have a sort of wizard within the page, I'm not clear how I would make it work.  For example, can I use Frame to manage navigation in a sub page (I mean to have a section of a PAge which can have different content navigated just like a top level page, but with the outer page remaining fixed)?  Are there any examples of this?

    Hope the question makes some sense!

    Iain


    Iain Downs

    Sunday, June 24, 2012 9:10 AM

Answers

All replies

  • Hi Iain,

    Putting filters in the header area of a search results page is a standard navigation pattern. See Navigating with filters, pivots, sorts, and views for a discussion and examples of this.

    There are a number of ways to navigate within the page. A sub-Frame as you mention can definitely be used. Depending on the specific needs you may be better hosting the sub-pages in a FlipView, or as groups in a GridView, etc. I don't think we have a direct sample on Frame/Page navigation, but it is used in most of the samples for switching between scenarios. If you need help with using any of these please post your coding questions in the appropriate Building Metro style apps with... language forum.

    --Rob

    Monday, June 25, 2012 5:11 PM
    Moderator
  • I understand about views and filters, though I'm concerned that there may be so many that that level is crowded.

    What I'm more concerned about is the box you type the search terms in.  In my mind I'd put it level with the App Name above the filters layer.  I really wanted your views on if this was OK and if there were any examples of this sort of usage.

    Thanks for the coding forum pointer, will ask code questions there.

    Iain


    Iain Downs

    Monday, June 25, 2012 6:33 PM
  • The standard is to use the Search charm rather than to include a search box in your page. Adding a search box to the page is explicitly called out in the Inappropriate use of the Search charm section in the Guidelines and checklist for search document.

    --Rob

    Monday, June 25, 2012 6:56 PM
    Moderator