.net 2005动态加控件的时候,第一个想到的是PlaceHolder,在PlaceHolder中动态添加控件。
添加控件的过程很简单,无非就是先定义一个控件,然后通过PlaceHolder.Controls.Add添加进PlaceHolder中即可。但是如果里面涉及到换行的问题,该怎么处理呢?
查了查资料,看到了这样一种添加方法,就是在控件中添加Table,想了想应该可以,因为本身是容器控件,而且在Table中换行简直太容易了。但是我不想这样,因为我要的只是在下一行显示而已,没有其他的要求,所以如果这样的要求,也需要TableRow,TableCell,我觉得有点接受不了。
通过继续查,发现有这么一个类:Literal。当时看别人写的是PlaceHolder.Controls.Add(new Literal("<br/>")),在.net 2005下试了一下,发现没有这个构造函数,只有一个不带参的。不知道是不是在2005时改成这样的,没有试其它的版本。查了查它的属性,好像能加<br/>,只有text这个属性了,于是试了试:
System.Web.UI.WebControls.HyperLink hl = new HyperLink();
hl.Target = "_blank";
hl.Text = namelist[i].ToString();
hl.NavigateUrl = fujianlist[i].ToString();
psphoto.Controls.Add(hl);
Literal l = new Literal();
l.Text = "<br/>";
psphoto.Controls.Add(l);
ok,就是我要的东西:PlaceHolder换行。