Domanda

ho scritto un elenco personalizzato in SharePoint, con il metodo OnPreRender popolando la lista tramite un webservice. L'elenco deve rimanere ogni volta aggiornato esso è stato reso. Quando l'elenco viene visualizzato tramite il Lists-> MyList, l'AllItems.aspx si chiama e la mia dietro il codice (un WebpartPage) viene chiamato e l'elenco viene aggiornato.

Ma se a incorporare la lista in prima pagina o in qualsiasi altro luogo, il mio codice dietro non ottiene chiamato. Essa mostra i dati dell'elenco esistente. Che cosa sto facendo di sbagliato?

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.
    }
}

Nessuna soluzione corretta

Altri suggerimenti

Supponendo che si stanno cadendo l'elenco in Home Page (Front Page), vorrei suggerire di scrivere un WebPart non un WebPartPage. Perché quando si rilascia un elenco nella pagina che si sta mettendo indirettamente il ListViewWebPart, non la pagina. Quindi è ovvio che il codice non viene chiamato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top