コンテンツ検索Webパーツのコントロール表示テンプレートにパラメータを渡す方法?
-
10-12-2019 - |
質問
SharePoint 2013を使用すると、次の表示テンプレートを使用して5つのニュース記事を表示するために使用しているコンテンツ検索Webパーツがあります。
- コントロール:list
- item:左側の写真、右側の3行
そしてこれはちょうどいいです。
私が含めたいことは、すべてのニュース記事を表示する「ニュースアーカイブ」ページにユーザーを取得する5つのニュース記事の後のリンクです。
OOTB CONTROL_LIST.JS表示テンプレートをベースにしてカスタムコントロール表示テンプレートを作成することを考えています。私はディスプレイテンプレートのニュースアーカイブへのリンクをハードコーディングできると思いますが、再使用可能にしたいと思います。コントロールディスプレイテンプレートにデータを動的に渡すことができる方法はありますか?
これに近づく方法についての他の提案は?
解決
ContentBySearchWebPartを継承し、onloadイベントを過負荷にする必要があります。
protected override void OnLoad(EventArgs e)
{
if (this.AppManager != null)
{
if (this.AppManager.QueryGroups.ContainsKey(this.QueryGroupName) &&
this.AppManager.QueryGroups[this.QueryGroupName].DataProvider != null)
{
this.AppManager.QueryGroups[this.QueryGroupName].DataProvider.BeforeSerializeToClient +=
new BeforeSerializeToClientEventHandler(EnhanceQuery);
}
}
base.OnLoad(e);
}
protected virtual void EnhanceQuery(object sender, BeforeSerializeToClientEventArgs e)
{
DataProviderScriptWebPart dataProvider = sender as DataProviderScriptWebPart;
dataProvider.Properties.Add("MyProperty", this.MyProperty);
}
.
このプロパティを表示テンプレートHTMLに入れることができます。
<!--#_
var myValue = ctx.DataProvider.get_properties()["MyProperty"];
_#-->
<div>_#= myValue =#_</div>
. 他のヒント
私はなぜあなたがこれのために展示テンプレートが必要なのか疑問に思います!CSWPに5回の結果の制限を入力し、コンテンツエディタWebパーツを追加することができます。ページの終わり(CSWPの後)を新しいページにガイドします。
所属していません sharepoint.stackexchange