SPListItem的SharePoint URL检索

14 sharepoint list

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

当我拉item["ColumnName"]我得到它的价值:

http://www.google.com/article/583,%20title%20gets%20stars

为什么显示链接和标题?

Mag*_*son 26

您可以通过以下方式提取实际值UrlDescription列值:

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

string linkTitle = fieldValue.Description;

string linkUrl = fieldValue.Url;
Run Code Online (Sandbox Code Playgroud)


Rex*_*x M 6

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

item ["FieldName"]返回表示字段值的通用对象.除了作为数据的原始字符串表示之外,对象本身通常是无用的.

如果您使用GetFieldValueAsHtml()方法,它将返回<a href="url">title</a>:

//if field is of type Hyperlink, returns <a href="url">title</a>
item.Fields["FieldName"].GetFieldValueAsHtml(item["FieldName"])
Run Code Online (Sandbox Code Playgroud)

要么

//if field is of type Hyperlink, returns Url, Title
item.Fields["FieldName"].GetFieldValueAsText(item["FieldName"])
Run Code Online (Sandbox Code Playgroud)

要么

//if field is of type Hyperlink, returns Url
item.Fields["FieldName"].GetValidatedString(item["FieldName"])
Run Code Online (Sandbox Code Playgroud)


mar*_*kom 0

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

来自 SharePoint 文档:

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

您必须将字符串拆分为两部分。

string url = field["URL"].Split(',')[0];
string title = field["URL"].Split(',')[1];
Run Code Online (Sandbox Code Playgroud)

代码不是最佳的,但只是为了向您展示我的意思。

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