2009-09-14 6 views
0

J'ai une liste de SharePoint comme source de données et les données dans elle n'est pas nettoyée.Ignorer; et ajouter à la table de données

Je souhaite afficher une colonne dans une liste déroulante. Les données sont comme ceci:

  1. Stackoverflow
  2. Stackoverflow: XYZ
  3. Stackoverflow; 123
  4. Stackoverflow, ABC

Je veux que le "Stackoverflow" à afficher dans le menu déroulant. Comment puis-je ignorer le texte après un symbole et le placer dans une table de données?

Aidez-nous s'il vous plaît.

Répondre

2

Vous devrez peut-être supprimer vous-même les caractères séparateurs. Il semble que ces séparateurs varient entre ":", ";" et ",".

Est-il possible de patcher votre source de données avant de l'affecter à la liste SharePoint? Dans le code de patch, vous pouvez écrire quelque chose comme ce qui suit:

Regex exp = new Regex("^(.+?)\b.*$", RegexOptions.Compiled); 

DataRow[col] = exp.Replace(Convert.ToString(DataRow[col]), "$1"); 

Ce remplacement regex élimine efficacement tout le texte ou après la première limite de mot (périodes, des virgules, etc.)

Ce n'est pas un Je sais que c'est une solution parfaite, mais ça marche.

0

Voilà comment je l'ai fait:

ArrayList values = new ArrayList(); 
foreach (DataRow dr in Dt.Rows) 
{ 
    string delimStr = ",.:;"; 
    char[] delimiter = delimStr.ToCharArray(); 
    string origString = dr["Title"].ToString(); 
    string[] cleansedString = origString .Split(delimiter); 
    string Str= cleansedString [0]; 
    if (!values.Contains(Str)) 
    { 
     values.Add(Str); 
    } 
} 
values.Sort(); 
ddList.DataSource = values; 
ddList.DataBind(); 

Merci pour le soutien !!

Questions connexes