用链接按钮替换html中的文本

时间:2009-08-19 15:59:56

标签: asp.net

我有一个包含一些html的变量。我目前只是将它放在页面上的文字中,它工作正常。

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

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

但是如何将链接按钮放在html中并显示它?

是否有其他解决此问题的方法,我应该研究一下?

1 个答案:

答案 0 :(得分:1)

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

这是一个简单的解决方案(IndexOf而不是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);
}

列表不是必需的,因为您可以直接添加到面板控件集合