Frage

Ich habe eine benutzerdefinierte Liste in Sharepoint geschrieben, mit der OnPreRender Methode, um die Liste über einen Webservice bevölkern. Die Liste muss aktualisiert jedes Mal bleiben sie gemacht wird. Wenn die Liste über die Lists-> MyList betrachtet wird, wird die AllItems.aspx genannt und mein Code hinter (a WebpartPage) wird aufgerufen, und die Liste aktualisiert wird.

Aber wenn ich die Liste auf der Titelseite einbetten oder anderswo, hat mein Code hinter nicht aufgerufen. Es zeigt die vorhandenen Listendaten. Was mache ich falsch?

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

Keine korrekte Lösung

Andere Tipps

Unter der Annahme, dass Sie die Liste auf der Startseite (Startseite) fallen, würde ich vorschlagen, einen WebPart keinen WebPartPage zu schreiben. Denn wenn Sie eine Liste auf der Startseite fallen platzieren Sie indirekt die ListViewWebPart, nicht auf die Seite. So ist es offensichtlich, dass Ihr Code wird nicht aufgerufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top