0

我在 sharepoint 中编写了一个自定义列表,onPreRender 方法通过 Web 服务填充列表。该列表需要在每次呈现时保持更新。当通过 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.
    }
}
4

1 回答 1

0

假设您要在主页(首页)中删除列表,我建议您编写 WebPart 而不是 WebPartPage。因为当您在主页中放置一个列表时,您是在间接放置 ListViewWebPart,而不是页面。所以很明显你的代码没有被调用。

于 2010-03-02T10:18:02.500 回答