In the first step, let's create the Authoring and Publishing Site Collections. Authoring Site collection allows authors to manage their website content while the Publishing Site collection reviews the content from the authoring site collection.
Create a list named “Employee Details” that contains Employee name, Employee designation, Employee ID, Employee designation, Blood group, Email, and Mobile.


Let’s go and create a control and a template to display the items.
- Control Template
It provides the overall structure (layout) of the HTML elements along with start and end tags. - Item Template
It renders the items from the list, and contains text and pictures.
Now, let's create two display templates for displaying a bootstrap carousel menu control and a menu item.
Code – Datatable Control Template
Upload the script and CSS into style library.

Add the scripts and CSS into Control template.
- <script>
- $includeScript(this.url, "~sitecollection/Style%20Library/datatable/jquery.dataTables.min.css");
- $includeCSS(this.url, "~sitecollection/Style%20Library/datatable/jquery.dataTables.min.js");
- </script>
Now, let's define the HTML layout to the Control template.
- <table id="datatable" class="display">
- <thead>
- <tr>
- <th>Employee ID</th>
- <th>Employee Name</th>
- <th>Designation</th>
- <th>Blood Group</th>
- <th>Email</th>
- <th>Mobile</th>
- </tr>
- </thead>
- <tbody>
- _#= ctx.RenderItems(ctx) =#_
- </tbody>
- </table>
The full code looks like the following.
- <html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
- <head>
- <title>Datatable Control</title>
- <!--[if gte mso 9]><xml>
- <mso:CustomDocumentProperties>
- <mso:TemplateHidden msdt:dt="string">0</mso:TemplateHidden>
- <mso:MasterPageDescription msdt:dt="string">Display a Accordion Control</mso:MasterPageDescription>
- <mso:ContentTypeId msdt:dt="string">0x0101002039C03B61C64EC4A04F5361F385106601</mso:ContentTypeId>
- <mso:TargetControlType msdt:dt="string">;#SearchResults;#Content Web Parts;#</mso:TargetControlType>
- <mso:HtmlDesignAssociated msdt:dt="string">1</mso:HtmlDesignAssociated>
- <mso:HtmlDesignConversionSucceeded msdt:dt="string">True</mso:HtmlDesignConversionSucceeded>
- <mso:CrawlerXSLFile msdt:dt="string"></mso:CrawlerXSLFile>
- <mso:HtmlDesignPreviewUrl msdt:dt="string"></mso:HtmlDesignPreviewUrl>
- <mso:HtmlDesignStatusAndPreview msdt:dt="string">http://technologygeeks/sites/publishing/_catalogs/masterpage/Display Templates/Content Web Parts/banner/bannercontrol.html, Conversion successful.</mso:HtmlDesignStatusAndPreview>
- </mso:CustomDocumentProperties>
- </xml><![endif]-->
- </head>
- <body>
- <script>
- $includeCSS(this.url, "~sitecollection/Style%20Library/datatable/jquery.dataTables.min.css");
- $includeScript(this.url, "~sitecollection/Style%20Library/datatable/jquery.dataTables.min.js");
- $includeScript(this.url, "~sitecollection/Style%20Library/datatable/jquery-1.8.2.min.js");
- </script>
- <div>
- <!--#_if (!$isNull(ctx.ClientControl) && !$isNull(ctx.ClientControl.shouldRenderControl) && !ctx.ClientControl.shouldRenderControl()){return "";}
- ctx.ListDataJSONGroupsKey = "ResultTables";
- ctx["CurrentItems"] = ctx.ListData.ResultTables[0].ResultRows;
- var siteURL = SP.PageContextInfo.get_siteAbsoluteUrl();
- AddPostRenderCallback(ctx, function() {
- $.getScript(siteURL + "");
- $('#datatable').dataTable();
- });
- _#-->
- <table id="datatable" class="display">
- <thead>
- <tr>
- <th>Employee ID</th>
- <th>Employee Name</th>
- <th>Designation</th>
- <th>Blood Group</th>
- <th>Email</th>
- <th>Mobile</th>
- </tr>
- </thead>
- <tbody>
- _#= ctx.RenderItems(ctx) =#_
- </tbody>
- </table>
- </div>
- </body>
- </html>
Datatable Item Template
Let’s go to Item template and declare the managed properties and necessary variables.











Prashant DikondaPosted Aug 27, 2018, 10:50 PM
Hi, my results rows from search query is more than 10000+, But datatable showing only overall with paging as mentioning 'Number of items to show' like max 50. what about other results
Ravi KandelPosted Mar 8, 2017, 8:31 AM
Awesome Thanks for sharing