我在 SP 2013 上使用内容搜索 Web 部件,我试图从 ctx 对象中获取要在 Javascript 中显示选项的项目数的值。我已经尝试过 ctx.ListData.ResultTables[0].RowCount 但似乎该值仅用于当前页面上的计数,而不是在 Web 部件配置中的“要显示的项目数”选项中配置的。
另外,你知道我在哪里可以找到更多关于如何调试 ctx 对象或它使用的属性或方法的信息。任何帮助,将不胜感激。提前致谢。
我在 SP 2013 上使用内容搜索 Web 部件,我试图从 ctx 对象中获取要在 Javascript 中显示选项的项目数的值。我已经尝试过 ctx.ListData.ResultTables[0].RowCount 但似乎该值仅用于当前页面上的计数,而不是在 Web 部件配置中的“要显示的项目数”选项中配置的。
另外,你知道我在哪里可以找到更多关于如何调试 ctx 对象或它使用的属性或方法的信息。任何帮助,将不胜感激。提前致谢。
我们可以使用JSOM来实现它。以下代码供您参考。
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(retrieveWPProperties, "sp.js");
function retrieveWPProperties(){
var pageurl=_spPageContextInfo.serverRequestPath; //current page
var currentCtx = new SP.ClientContext.get_current();
var pageFile = currentCtx.get_web().getFileByServerRelativeUrl(pageurl);
var webPartManager = pageFile.getLimitedWebPartManager(SP.WebParts.PersonalizationScope.shared);
var webPartDefs = webPartManager.get_webParts();
currentCtx.load(webPartDefs, 'Include(WebPart.Properties)');
currentCtx.executeQueryAsync(
function () {
if (webPartDefs.get_count()) {
for (var i = 0; i < webPartDefs.get_count() ; i++) {
var webPartDef = webPartDefs.getItemAtIndex(i);
var webPart = webPartDef.get_webPart();
var properties = webPart.get_properties();
//console.log(JSON.stringify(properties.get_fieldValues())); //print all properties
if(properties.get_fieldValues().Title=="Content Search"){
var resultsPerPage=properties.get_fieldValues().ResultsPerPage;
alert(resultsPerPage);
}
}
}
else {
console.log("No web parts found.");
}
},
function (sender, args) {
console.log(args.get_message());
});
}
</script>