2010-03-30 2 views
1

Quelqu'un peut-il me dire comment je peux savoir si un objet SPField est une zone de texte enrichie ou une zone de texte normale? Si c'est une zone de texte riche alors je veux utiliser le GetFieldValueAsHtml sinon je veux utiliser les méthodes GetFieldValueAsText. J'ai regardé SPField.Type mais je suis soit aveugle (très possible) ou il a juste une option Text qui représente tout le champ de texte.Comment puis-je savoir si un SPField est une zone de texte enrichie ou une zone de texte normale?

Répondre

3

Pouvez-vous utiliser la propriété TypeAsString? D'autres semblent avoir eu le type issues.

string fieldType = spField.TypeAsString; 
+0

qui ne fonctionne pas vraiment. J'ai trouvé que les zones de texte multiligne sont SPFieldType.Note donc si le champ est ceci j'utilise le retour de HTml sinon je renvoie la valeur en tant que texte – Paul

1
private bool IsRichTextField(SPListItem item, string fieldName) 
{ 
    bool isRichText = false; 

    if (item.Fields.ContainsField(fieldName) && item.Fields[fieldName] is SPFieldMultiLineText) 
    { 
     var multiLineField = item.Fields[fieldName] as SPFieldMultiLineText; 
     isRichText = multiLineField.RichText; 
    } 

    return isRichText; 
} 
Questions connexes