2009-03-04 21 views

Trả lời

0

Đó là cách SharePoint lưu trữ liên kết. Đầu tiên là URL và sau đó là Tiêu đề thực sự được hiển thị trên trang.

Từ các tài liệu SharePoint:

"Trường URL duy nhất bao gồm hai chuỗi phân cách bằng dấu phẩy và không gian Một chuỗi chứa đường dẫn URL và khác chứa các mô tả sử dụng dưới dạng văn bản siêu liên kết."

Bạn phải chia chuỗi để nhận được hai phần.

string url = field["URL"].Split(',')[0]; 
string title = field["URL"].Split(',')[1]; 

Mã không tối ưu, nhưng chỉ để cho bạn thấy chính xác ý tôi.

Oliver, bạn không chỉ định phiên bản SharePoint. Câu trả lời của tôi là cho phiên bản 2003. Nếu bạn có MOSS, hãy xem các lớp học SPFieldUrlSPFieldUrlValue.

6

Vì ở mức thấp nhất, tất cả các trường Sharepoint được lưu trữ dưới dạng chuỗi. Phương thức GetFieldValue của một SPField chấp nhận một chuỗi, và nó là đến logic của lớp trường đó để đọc chuỗi đó và chuyển đổi nó thành một đối tượng có giá trị có ý nghĩa.

mục ["FieldName"] trả về đối tượng chung đại diện cho giá trị trường. Bản thân đối tượng thường là vô ích, trừ khi biểu diễn chuỗi thô của dữ liệu.

Nếu bạn sử dụng phương pháp GetFieldValueAsHtml(), nó sẽ trở lại <a href="url">title</a>:

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

Hoặc

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

Hoặc

//if field is of type Hyperlink, returns Url 
item.Fields["FieldName"].GetValidatedString(item["FieldName"]) 
+0

Điều đó sẽ trở HTML để hiển thị các giá trị trường trực tiếp trên trang – muerte

+0

Cảm ơn meurte, đã không thực hiện việc trả lời. –

+0

Thats WSS 3.0 phải không? – muerte

26

Bạn có thể trích xuất các thực tế UrlDescription từ giá trị cột theo cách này:

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

string linkTitle = fieldValue.Description; 

string linkUrl = fieldValue.Url; 
2

Thuộc tính URL SPListItem trả về URL cho SPListItem bao gồm tên thư viện List/Documetn, nhưng không trả về URL đầy đủ bao gồm tên máy chủ và tên trang.

Để lấy URL đầy đủ, bạn có thể ghép nối SPLIstItem.Web.Url và SPListItem.URL hoặc trích xuất URL đầy đủ từ SPListItem.dữ liệu XML như thế này:

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; 
} 

http://insomniacgeek.com/code/how-to-get-the-full-url-from-splistitem-in-sharepoint/

Các vấn đề liên quan