Sub-Sub filter
I have a dynamic module list control on my page. So when I click an item it filters to show me the full item right?
Ok, so then if I have a documents list or image list widget with a pager on the page and try TO page...it breaks the filtering.
~/items/filtereditem
becomes
~/items/page/5
Steve
Hello Steve,
Yes, as you correctly observed you'll need to fine tune this configuration a little bit to accommodate for the scenario where you have several ContentView controls on the same page.
Here is how the Sitefinity ContentView widgets work. All content widgets require URL evaluation.
When you drop two content widgets (news, events, blog posts, content list, image gallery, video gallery, download list) on one page, by default they will share the following behavior:
What this means is that clicking a page in one widget will also change the page in the other. Clicking a single item in one widget will switch the other to detail mode, filtering by date would filter both widgets, etc.
If this is not the desired behavior, there are two things that can be done, depending on the user’s preferences:
1. Set UrlKeyPrefix property to a different string in all widgets that should not share behavior
2. Do 1, PLUS set the UrlEvaluationMode to “QueryString” (the default is “UrlPath”)
In the first case, when you do an action of the above listed (say click a page), a string will be added to the URL, with the value from the respective widget (whose page you clicked). That way, the application will know to change only the page of this particular widget and not the rest. The URL would still be pretty. The downside to this is that it can only contain information for ONE widget.
I.e. When you click page 2 of news, then click page 3 of blogs, the string in the URL will only be for blogs, and news will go back to page 1. The upside is pretty URLs.
In the second case, you can do everything you want. The URL will contain information about all widgets on the page (in the query string), and they will all have different behavior (assuming you set different UrlKeyPrefix).
This is all by design and is all needed, because widgets don't keep state and do no postbacks. The UrlEvaluationMode property is the only property in the history of Sitefinity, which is applied page-wide. Setting it on one widget will set it for all widgets on the same page (assuming it is a Sitefinity page).
There’s an option in the properties of all controls to turn off only the URL Filtering. For instance drop News widget and a Blog Posts widget on one page with the default settings for both.
- In the front-end, if you click a news item, the News widget will display that item in detail mode. Since this changes the URL (which now includes the date of the item), the Blog Posts widget will filter by that date.
In almost all cases this is not the desired behavior, but say you don’t want any additional keys in the URL. What you can do is Go to Advanced view of the widgets, then ControlDefinition -> Views -> (name of list view) -> AllowUrlQueries and set this to FALSE. This would stop the widget from filtering and the one that you didn’t click will stay in master mode (list).
Note that if you have a master-detail scenario between two pages, this would prevent it from working, so only use it in case the widget doesn’t display info after a redirect from another page.
Great post Boyan, I'm saving this one!
Hello Steve,
Thanks a lot, I appreciate it, hopefully this will help others who have the same scenario find it more easily. Kudos should go to Ivan Dimitrov, though, as he was the one to explain this in full details some time ago in a support thread :)
Kind regards,
Boyan Barnev
the Telerik team
:) ListItem updated!