Skip to content

Instantly share code, notes, and snippets.

@estruyf
Created December 3, 2014 08:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save estruyf/0425b69d2cc602448d43 to your computer and use it in GitHub Desktop.
Save estruyf/0425b69d2cc602448d43 to your computer and use it in GitHub Desktop.
SPSUK Demo Loading more results (Control Template)
<html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<head>
<title>More Results</title>
<!--[if gte mso 9]><xml>
<mso:CustomDocumentProperties>
<mso:TemplateHidden msdt:dt="string">0</mso:TemplateHidden>
<mso:MasterPageDescription msdt:dt="string">This is the default Control Display Template that will list the items. It does not allow the user to page through items.</mso:MasterPageDescription>
<mso:ContentTypeId msdt:dt="string">0x0101002039C03B61C64EC4A04F5361F385106601</mso:ContentTypeId>
<mso:TargetControlType msdt:dt="string">;#Content Web Parts;#</mso:TargetControlType>
<mso:HtmlDesignAssociated msdt:dt="string">1</mso:HtmlDesignAssociated>
<mso:HtmlDesignConversionSucceeded msdt:dt="string">True</mso:HtmlDesignConversionSucceeded>
<mso:HtmlDesignStatusAndPreview msdt:dt="string">http://intranet/sites/SPSUK/_catalogs/masterpage/SPSUK/LoadMore/Control_More.html, Conversion successful.</mso:HtmlDesignStatusAndPreview>
</mso:CustomDocumentProperties>
</xml><![endif]-->
</head>
<body>
<script>
Type.registerNamespace('search.LoadMore');
search.LoadMore = function() {
var currentCtx;
return {
setCurrentCtx: function (ctx) {
currentCtx = ctx;
},
loadMoreResults: function () {
// Loading more results
var totalResults = currentCtx.ClientControl.get_numberOfItems() + 3;
currentCtx.ClientControl.set_numberOfItems(totalResults);
currentCtx.DataProvider.set_resultsPerPage(totalResults);
// Issue the query
currentCtx.DataProvider.issueQuery();
}
}
}();
Srch.U.registerRenderTemplateByName("setcurrentctx", search.LoadMore.setCurrentCtx);
Srch.U.registerRenderTemplateByName("loadmoreresults", search.LoadMore.loadMoreResults);
</script>
<div id="Control_List">
<!--#_
Srch.U.getRenderTemplateCollection().setcurrentctx(ctx);
if (!$isNull(ctx.ClientControl) &&
!$isNull(ctx.ClientControl.shouldRenderControl) &&
!ctx.ClientControl.shouldRenderControl())
{
return "";
}
ctx.ListDataJSONGroupsKey = "ResultTables";
var $noResults = Srch.ContentBySearch.getControlTemplateEncodedNoResultsMessage(ctx.ClientControl);
var noResultsClassName = "ms-srch-result-noResults";
var ListRenderRenderWrapper = function(itemRenderResult, inCtx, tpl)
{
var iStr = [];
iStr.push('<li>');
iStr.push(itemRenderResult);
iStr.push('</li>');
return iStr.join('');
}
ctx['ItemRenderWrapper'] = ListRenderRenderWrapper;
var retrievalDate = new Date();
retrievalDate = retrievalDate.format('hh:mm:ss');
_#-->
<div class="results">
<ol style="padding-left:15px">
_#= ctx.RenderGroups(ctx) =#_
</ol>
<a href="#" onclick="Srch.U.getRenderTemplateCollection().loadmoreresults()" class="load-more" title="Load more results" style="background-color:#0072c6;color:#fff;padding:4px;text-align:center;">
Load more results
</a>
</div>
<!--#_
if (ctx.ClientControl.get_shouldShowNoResultMessage())
{
_#-->
<div class="_#= noResultsClassName =#_">_#= $noResults =#_</div>
<!--#_
}
_#-->
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment