Код пользовательского списка Sharepoint, лежащий в основе, не вызывается на встроенной странице

StackOverflow https://stackoverflow.com/questions/2361747

Вопрос

Я написал пользовательский список в sharepoint, используя метод OnPreRender, заполняющий список через веб-сервис.Список должен обновляться каждый раз, когда он отображается.Когда список просматривается через Lists-> myList , вызывается allitems.aspx, вызывается мой исходный код (WebpartPage) и список обновляется.

Но если я вставлю список на главную страницу или куда-нибудь еще, мой код за ней не будет вызван.Он показывает существующий список данных.Что я делаю не так?

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

Нет правильного решения

Другие советы

Предполагая, что вы удаляете Список с Домашней страницы (Front Page), я бы предложил написать веб-раздел, а не WebPartPage.Потому что, когда вы размещаете список на Домашней странице, вы косвенно размещаете ListViewWebPart, а не Страницу.Таким образом, очевидно, что ваш код не вызывается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top