3

我有一个以指定格式呈现随机列表项(来自任何列表和列表类型)的 Web 部件。我希望 webpart 中显示的项目链接到它们的 ListItem 详细信息视图。但是,我看不到列表本身的属性,它可以告诉我列表的默认详细视图是什么视图(即博客列表详细信息是 Post.aspx)。这是否来自列表定义?我将如何以编程方式获取该信息?我试图避免根据列表类型对任何列表信息进行硬编码。

4

1 回答 1

6

看看SPList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url

我想这就是你要找的。您需要在查询字符串上附加 SPListItem.ID,以便它知道要显示哪个列表项。

using (SPWeb myWeb = GetMyWeb()) // GetMyWeb gets a reference to a SPWeb object
{
    SPList myList = GetMyList(myWeb); // GetMyList gets a reference to a SPList object
    SPListItem myItem = GetMyListItem(myList); // GetMyListItem gets a reference to a SPListItem object
    string url = String.Format("{0}/{1}?ID={2}",
        myWeb.Url,
        myList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, 
        myItem.ID);
}

附加到查询字符串也是一个很好的做法,&Source=/url/to/current/page这样当用户单击“编辑”或“显示”表单上的“取消/关闭”按钮时,他们将被重定向回他们离开的页面。

于 2008-12-03T18:54:44.847 回答