2009-03-04 18 views

Antwort

0

So speichert SharePoint Verknüpfungen. Zuerst die URL und dann den Titel, der auf der Seite angezeigt wird.

in der Sharepoint-Dokumentation: „. Das URL-Feld besteht eindeutig aus zwei durch ein Komma und Leerzeichen getrennt Strings Ein String enthält den URL-Weg und der andere enthält die als Hyperlink Text verwendete Bezeichnung“

Sie müssen die Zeichenfolge aufteilen, um zwei Teile zu erhalten.

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

Code ist nicht optimal, aber nur um Ihnen genau zu zeigen, was ich meine.

Oliver, Sie haben keine SharePoint-Version angegeben. Meine Antwort ist für 2003 Version. Wenn Sie MOSS haben, werfen Sie einen Blick auf SPFieldUrl und SPFieldUrlValue Klassen.

6

Da auf der untersten Ebene alle Sharepoint-Felder als Zeichenfolgen gespeichert sind. Die GetFieldValue-Methode eines SPField akzeptiert eine Zeichenfolge und es obliegt der Logik dieser Feldklasse, diese Zeichenfolge zu lesen und in ein sinnvolles Wertobjekt zu konvertieren.

Element ["FieldName"] gibt ein generisches Objekt zurück, das den Feldwert darstellt. Für sich genommen ist das Objekt normalerweise nutzlos, außer als rohe Zeichenfolgendarstellung der Daten.

Wenn Sie die GetFieldValueAsHtml() -Methode verwenden, wird es zurückgeben <a href="url">title</a>:

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

Oder

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

Oder

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

Das HTML-Code für die Darstellung des Feldwert direkt auf der Seite – muerte

+0

Dank meurte wurde nicht beantwortet getan zurück. –

+0

Das ist WSS 3.0 richtig? – muerte

26

Sie können die tatsächlichen Url extrahieren und die Description aus dem Spaltenwert auf diese Weise:

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

string linkTitle = fieldValue.Description; 

string linkUrl = fieldValue.Url; 
2

Die SPListItem URL-Eigenschaft macht die URL für die SPListItem zurückkehren, darunter List/Documetn Name der Bibliothek, aber nicht die vollständige URL einschließlich der Server und die Site-Namen zurück.

Um die vollständige URL zu erhalten, können Sie entweder SPLIstItem.Web.Url und SPListItem.URL verketten oder die vollständige URL aus SPListItem extrahieren.XML-Daten wie folgt aus:

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/

Verwandte Themen