2014-03-06 31 views
2

我有一个HyperLink控件,它的Text属性中有文本。添加控件后未呈现超链接文本

用下面的代码:

var link = new HyperLink(); 
var img = new HtmlGenericControl("img"); 
img.Attributes.Add("src", "text.png"); 
link.Text = "Test"; 
link.Controls.Add(img); 

当我这样做,图像渲染的a标签内,但文本不rendred。 有没有办法在Text属性中同时渲染图像和文本,而不会将第三个控件投入混合?

回答

3

当您将任何控件放入WebControl.Controls集合中时,它将忽略Text中的内容。所以,如果你想渲染文本和其他子控件,您应该添加文本到Controls

var link = new HyperLink(); 
var img = new HtmlGenericControl("img"); 
img.Attributes.Add("src", "text.png"); 
link.Controls.Add(new Literal{ Text = "Test"}); // this line will add the text 
link.Controls.Add(img); 
+0

我喜欢你的解决方案通过@RKS,因为它更紧凑。谢谢! –

1

根据the MSDN article“HyperLink控件可以显示为文本图像。”所以答案是否定的,恐怕。

2

我觉得这应该制定出适合您。

var link = new HyperLink(); 
var img = new HtmlGenericControl("img"); 
var lbl = new Label(); 
img.Attributes.Add("src", "text.png"); 
lbl.Text = "Test"; 
link.Controls.Add(img); 
link.Controls.Add(lbl); 
this.Controls.Add(link);