Comment passer des paramètres dans le modèle d'affichage de contrôle d'une partie Web de recherche de contenu?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/67619

Question

Utiliser SharePoint 2013, j'ai une partie de recherche de contenu que j'utilise pour afficher 5 articles de presse à l'aide des modèles d'affichage suivants:

  • Contrôle: Liste
  • Item: image à gauche, 3 lignes à droite

    Et cela fonctionne juste bien.

    Ce que j'aimerais inclure est un lien après les 5 articles de presse qui prendront l'utilisateur à une page "Archives de nouvelles" où il affiche tous les articles de presse.

    Je pense créer un modèle d'affichage de contrôle personnalisé basé sur le modèle d'affichage Ootb Control_List.js.Je suppose que je pourrais durer duper le lien vers l'archive des nouvelles du modèle d'affichage, mais je voudrais le rendre réutilisable.Y a-t-il une façon de passer de manière dynamique des données sur le modèle d'affichage de contrôle?

    Toute autre suggestion sur la façon d'approcher cela?

Était-ce utile?

La solution

Vous devez hériter de contentbysearchwebPart et surcharger l'événement surload:

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);
}

Vous pouvez maintenant obtenir cette propriété dans un modèle d'affichage HTML:

<!--#_
    var myValue = ctx.DataProvider.get_properties()["MyProperty"];
_#-->
<div>_#= myValue =#_</div>

Autres conseils

Je me demande pourquoi vous avez besoin d'un modèle d'affichage pour cela du tout!Vous pouvez mettre une limite de 5 numéro de résultat dans CSWP et ajouter une partie Web de l'éditeur de contenu A la fin de la page (après CSWP) pour guider l'utilisateur vers une nouvelle page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top