我有一个 Web 部件,它以指定格式呈现随机列表项(来自任何列表和列表类型)。我希望 Web 部件中显示的项目链接到它们的 ListItem 详细信息 View 。但是,我在列表本身上看不到一个属性可以告诉我哪个 View 是列表的默认详细信息 View (即博客列表详细信息是 Post.aspx)。这是否来自列表定义?我将如何以编程方式获取该信息?我试图避免根据列表类型对任何列表信息进行硬编码。
最佳答案
查看 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
附加到查询字符串也是一个好习惯,这样用户在单击取消/关闭按钮时将被重定向回他们离开的页面在编辑或显示表单上。
关于Sharepoint 默认列表项详细信息 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/338235/