Код пользовательского списка Sharepoint, лежащий в основе, не вызывается на встроенной странице
-
23-09-2019 - |
Вопрос
Я написал пользовательский список в 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, а не Страницу.Таким образом, очевидно, что ваш код не вызывается.