Question

J'ai écrit une liste personnalisée dans sharepoint, avec la méthode OnPreRender peuplant la liste via un webservice. La liste doit rester à jour à chaque fois qu'il est rendu. Lorsque la liste est vue par le Lists-> MyList, le allitems.aspx est appelé et mon code derrière (un WebpartPage) est appelée et la liste est mise à jour.

Mais si je la liste sur l'intégrer la première page ou nulle part ailleurs, mon code ne derrière nous appelle pas. Elle montre les données de liste existantes. Qu'est-ce que je fais mal?

public class GetList: WebPartPage
{

    protected override void OnPreRender(EventArgs e)
    {
        InvokeRefreshList();
        base.OnPreRender(e);

    }
    private void InvokeRefreshList()
    {
        SPList myList = null;
        SPWeb _web;
        _web = SPControl.GetContextWeb(Context);
        _webURL = _web.Url;
        myList = SPContext.Current.List;
        listTitle = myList .Title;
        SPSecurity.CodeToRunElevated elevatedRefreshList = 
            new SPSecurity.CodeToRunElevated(RefreshList);

        SPSecurity.RunWithElevatedPrivileges(elevatedRefreshList);

    }
    private RefreshList(){
         //webservice code.
    }
}

Pas de solution correcte

Autres conseils

En supposant que vous laissez tomber la liste dans la page d'accueil (première page), je vous suggère d'écrire un webpart pas WebPartPage. Parce que lorsque vous déposez une liste dans la page d'accueil vous placez indirectement la ListViewWebPart, pas la page. Il est donc évident que votre code est pas appelé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top