首页 新闻 会员 周边

如何通过WebControl对象得到它在IDE的HTML视图中的代码?

0
悬赏园豆:30 [已关闭问题]

比如Label是个具有复杂属性的WebControl,在vs中拖一个Label并在属性设置页中设置字体,最终会在HTML视图中产生它的代码,如: <asp:Label ID="Label1" runat="server" Text="Label" Font-Bold="True" Font-Size="12pt"> </asp:Label>

那么如果要在运行时,通过一个webcontrol的对象实例,来获取它在IDE中HTML视图里面的代码,如何实现?

备注:
不能使用反射来拼接字符串,太复杂了,还要判断各个属性的ParseChilden之类的东东~

SnApnet的主页 SnApnet | 初学一级 | 园豆:55
提问于:2009-09-09 13:18
< >
分享
其他回答(1)
0

要想完全重现,有点困难,不过反射可以做到生成一个WebControl的html客户端输出。

http://www.odetocode.com/Articles/288.aspx

邀月 | 园豆:25475 (高人七级) | 2009-09-09 14:40
谢谢回复,我自己也研究了下。 ControlDesigner类中GetPersistenceContent()方法可以返回这样的结果,但是它需要IDesignerHost的支持,也就是设计器宿主,最终是调用ControlSerializer.SerializeInnerContents方法来得到结果,ControlSerializer是个internal static class,里面提供了大量的方法,用来序列化控件为字符串等等,也是通过判断PersistenceModeAttribute等属性,用writer.write的方法来写字符串,但我在asp.net运行时无法创建设计时宿主,所以放弃使用.net自带的方法了,还是自己分析控件拼字符串吧。
支持(0) 反对(0) SnApnet | 园豆:55 (初学一级) | 2009-09-09 15:46
0

看到了你的帖子,真好,也收到了你的回信,谢谢你啊

一过 | 园豆:190 (初学一级) | 2010-09-03 14:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册