SharePoint Custom List Code-Behind não invocado em uma página incorporada
-
23-09-2019 - |
Pergunta
Eu escrevi uma lista personalizada no SharePoint, com o método onprender preenchendo a lista por meio de um serviço da web. A lista precisa se manter atualizada toda vez que for renderizada. Quando a lista é visualizada através das listas-> MyList, o allitems.aspx é chamado e meu código por trás (uma página da web) é chamado e a lista é atualizada.
Mas se eu incorporar a lista na primeira página ou em qualquer outro lugar, meu código por trás não será chamado. Ele mostra os dados da lista existente. O que estou fazendo errado?
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.
}
}
Nenhuma solução correta
Outras dicas
Supondo que você esteja abandonando a lista na página inicial (página frontal), sugiro escrever um WebPart e não uma página da web. Porque quando você solta uma lista na página inicial, está colocando indiretamente o ListViewWebPart, não a página. Portanto, é óbvio que seu código não é chamado.