In SharePoint 2007 (WSS3 - MOSS) è possibile ricavare l'url della display form (quella che visualizza i dati di un item della lista) in questo modo:
C#
//SPListItem item
string url = item.ParentList.Forms[PAGETYPE.PAGE_DISPLAYFORM].ServerRelativeUrl;
string formUrl = string.Format("{0}?ID={1}", url, item.ID);
Questo è il metodo generico. Quando un content type ridefinisce l'url standard della display form, questo è accessibile tramite:
C#
string url = item.ContentType.DisplayFormUrl;
nel caso in cui l'url ritornato (variabile url) contenga _layouts/ l'indirizzo (formUrl) va costruito passando in querystring anche il guid della lista:
C#
//SPListItem item
//SPList list = item.ParentList:
string url = item.ParentList.Forms[PAGETYPE.PAGE_DISPLAYFORM].ServerRelativeUrl;
string formUrl = "";
if(url.Contains("_layouts/"))
{
  string sg = Microsoft.SharePoint.Utilities.SPEncode.UrlEncode(list.ID.Tostring("B");
  formUrl = string.Format("{0}?ID={1}&List={2}", url, item.ID, sg);
}
else
{
  formUrl = string.Format("{0}?ID={1}", url, item.ID);
}
Potrebbe interessarti anche: