Access managed properties in Control template

Those who have worked with display templates would have worked with accessing managed properties in the item template of the Content Search Web Part (CSWP). There might be a requirement when you want to access the values of the managed properties of each result item in the control template of your CSWP rather than your item template.

The below code does exactly that:

clip_image001

a. $.each() is the jQuery loop function that is used to loop through each result returned

b. ctx.ListData.ResultTables[0].ResultRows retrieves the “RelevantResults” results from the 4 result tables available in the CSWP as shown below:

clip_image002

c. function (key, val) is the function that is going to process each search result.

d. val.EmailDate.toString(): Here only we are accessing the managed property called “EmailDate” from the variable “val” which would hold the values of all managed properties of the result item.

Display default content when there are no results returned in Content Search Web Part

Content search web part in SharePoint 2013 is a new feature that can comfortably replace the development of custom web parts from Visual Studio.

You may also like to have a look at the below blog posts regarding Content Search Web Parts:

There might be a requirement when there are no results returned from your CSWP’s query, you would still need to display some default content. Follow the below steps in order to accomplish this:

a. Edit your content search web part.

b. In the tool part, uncheck the option “Don’t show anything when there are no results.”

clip_image001

c. Open the control template of you content search web part, search for the below if condition:

clip_image002

d. The text or the HTML content that you give inside the above if condition would appear in your web part when it has no results to display. You may use it to display any custom empty message when there are no results returned.

Hope you found this to be helpful.