2009-08-19 137 views
0

我有一个包含一些html的变量。我现在只是把它放在页面上的文字上,而且它工作正常。用链接替换html中的文本

现在让我们说每次出现“FISH”这个词时,我想用一个可以做某事的链接替换这个词。

我可以用正则表达式找到FISH这个词的所有出现,并用一些东西(html,文本)替换它。我也知道如何使用命令名等linkutton等

但我怎么能把linkbutton在html中并显示它?

是否有另一种解决这个问题的方法,我应该看看?

+0

会有什么LinkBut​​ton的呢? – Lazarus 2009-08-19 16:09:22

+0

不只是重定向到一个链接,我怀疑是你在钓鱼。 :) 这是一些内容管理,用户需要插入“购买”链接的能力。 我可能会考虑一个解决方案,我只是用另一个页面的链接来替换,它只是购买东西 - 从那时起我可以用纯html代替 - 而不是一个linkbutton。 – Kjensen 2009-08-19 16:22:45

回答

1

您必须将您的文本解析为一组控件。

这里有一个简单的解决方案(中的IndexOf代替正则表达式)

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

名单是没有必要的,因为你可以直接添加到面板控件集合

+0

谢谢。 我决定走另一条路线,详见我对原始任务的评论。 – Kjensen 2009-08-19 18:19:30