Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SPListItem的SharePoint URL检索_Sharepoint_List - Fatal编程技术网

SPListItem的SharePoint URL检索

SPListItem的SharePoint URL检索,sharepoint,list,Sharepoint,List,当我试图检索超链接列时,我得到两个逗号分隔的项,而不是一个 当我拉取项[“ColumnName”]时,我得到它的值: 为什么显示链接和标题?这就是SharePoint存储链接的方式。首先是URL,然后是页面上实际显示的标题 从SharePoint文档中: “URL字段由逗号和空格分隔的两个字符串组成。一个字符串包含URL路径,另一个包含用作超链接文本的描述。” 你必须把绳子分成两部分 string url = field["URL"].Split(',')[0]; string title =

当我试图检索超链接列时,我得到两个逗号分隔的项,而不是一个

当我拉取
项[“ColumnName”]
时,我得到它的值:


为什么显示链接和标题?

这就是SharePoint存储链接的方式。首先是URL,然后是页面上实际显示的标题

从SharePoint文档中:

“URL字段由逗号和空格分隔的两个字符串组成。一个字符串包含URL路径,另一个包含用作超链接文本的描述。”

你必须把绳子分成两部分

string url = field["URL"].Split(',')[0];
string title = field["URL"].Split(',')[1];
代码不是最优的,只是为了让你明白我的意思


Oliver,您没有指定SharePoint版本。我的答案是2003年版。如果您有MOSS,请查看SPFieldUrlSPFieldUrlValue类。

因为在最低级别,所有Sharepoint字段都存储为字符串。SPField的GetFieldValue方法接受字符串,由该字段类的逻辑读取该字符串并将其转换为有意义的值对象

项[“FieldName”]返回表示字段值的通用对象。对象本身通常是无用的,除非作为数据的原始字符串表示

如果使用GetFieldValueAsHtml()方法,它将返回


您可以通过以下方式从列值中提取实际的
Url
Description

SPFieldUrlValue fieldValue = new SPFieldUrlValue(myItem["URL"].ToString());

string linkTitle = fieldValue.Description;

string linkUrl = fieldValue.Url;

SPListItem URL属性返回SPListItem的URL,包括列表/文档库名称,但不返回包括服务器和站点名称的完整URL

要获取完整URL,您可以将SPLIstItem.Web.URL和SPLIstItem.URL连接起来,或者从SPLIstItem.XML数据中提取完整URL,如下所示:

foreach (SPListItem item in list.Items)
{
  XmlDocument xmlDoc = new XmlDocument();
  xmlDoc.LoadXml(item.Xml);

  XmlNamespaceManager nsm = new XmlNamespaceManager(xmlDoc.NameTable);
  nsm.AddNamespace("z", "#RowsetSchema");

  string fullURL = xmlDoc.SelectSingleNode("z:row", nsm).Attributes["ows_EncodedAbsUrl"].Value;
}

将返回HTML代码,用于直接在页面上呈现字段值
//if field is of type Hyperlink, returns Url
item.Fields["FieldName"].GetValidatedString(item["FieldName"])
SPFieldUrlValue fieldValue = new SPFieldUrlValue(myItem["URL"].ToString());

string linkTitle = fieldValue.Description;

string linkUrl = fieldValue.Url;
foreach (SPListItem item in list.Items)
{
  XmlDocument xmlDoc = new XmlDocument();
  xmlDoc.LoadXml(item.Xml);

  XmlNamespaceManager nsm = new XmlNamespaceManager(xmlDoc.NameTable);
  nsm.AddNamespace("z", "#RowsetSchema");

  string fullURL = xmlDoc.SelectSingleNode("z:row", nsm).Attributes["ows_EncodedAbsUrl"].Value;
}