2009-08-19 8 views
0

J'ai une variable qui contient du code HTML. Je viens de mettre cela littéralement sur une page, et ça fonctionne bien.Remplacer du texte en html avec un bouton de lien

Dites maintenant à chaque fois que le mot "POISSON" se produit, je veux remplacer le mot par un bouton qui fait quelque chose.

Je peux trouver toutes les occurrences du mot FISH avec regex et le remplacer par quelque chose (html, texte peu importe). Je sais également comment faire le linkutton avec commandname etc.

Mais comment puis-je mettre le linkbutton dans le HTML et l'afficher?

Y a-t-il une autre approche à ce problème, que je devrais examiner?

+0

Qu'est-ce que le linkbutton faire? – Lazarus

+0

Non seulement rediriger vers un lien, que je soupçonne est ce que vous pêchez. :) C'est pour une gestion de contenu, où l'utilisateur a besoin de la possibilité d'insérer des liens "achat". Je pourrais envisager une solution, où je viens de remplacer avec des liens vers une autre page, qui fait simplement l'achat-truc - depuis lors, je peux simplement remplacer avec html simple - pas un bouton de lien. – Kjensen

Répondre

1

Vous devrez analyser votre texte dans un ensemble de contrôles.

Voici une solution simple (IndexOf au lieu de Regex)

string text = "some html FISH some html"; 
string fish = "FISH"; 

List<Control> controls = new List<Control>(); 
int lastIndex = 0; 
int index = 0; 
while((index = text.IndexOf(fish, index)) != -1) 
{ 
    string s = text.Substring(lastIndex, index); 
    LiteralControl literal = new LiteralControl(s); 
    controls.Add(literal); 

    LinkButton lb = new LinkButton(); 
    lb.CommandName = "whatever"; 
    controls.Add(lb); 
} 

foreach(Control c in controls) 
{ 
    somePanel.Controls.Add(c); 
} 

La liste n'est pas nécessaire, que vous pouvez ajouter directement à la collection de contrôle des panneaux

+0

Merci. J'ai décidé d'emprunter un autre itinéraire, comme détaillé dans mon commentaire sur la quête originale. – Kjensen

Questions connexes