C#发现之旅 - 高性能ASP.NET树状列表控件(中)
2010-09-30 21:03:16 来源:WEB开发网若控件的“GenerateAtServer”属性值为true,也就是在服务器端生成HTML代码,实现该功能的代码为
// 若在服务器端生成HTML代码则使用服务器端的XSLT转换
// 这里从资源文件SkyTreeViewControl.xslt中获得XSLT代码
string xslt = ReadXSLTString();
System.Xml.XmlDocument xsltDocument = new System.Xml.XmlDocument();
xsltDocument.LoadXml( xslt );
// 获得树状节点的数据XML文档
System.Xml.XmlDocument NodeXmlDocument = new System.Xml.XmlDocument();
NodeXmlDocument.LoadXml( xml );
// 创建一个字符串书写器,XSLT转换结果将输出到这个字符串书写器中
myStrWriter = new System.IO.StringWriter();
// 创建XSLT转换引擎
System.Xml.Xsl.XslCompiledTransform transform =
new System.Xml.Xsl.XslCompiledTransform();
// 引擎加载XSLT模板
transform.Load(xsltDocument);
// 执行XSLT转换
transform.Transform( NodeXmlDocument , null , myStrWriter );
// 直接向ASPX页面输出转换结果
writer.Write( myStrWriter.ToString());
这段代码中,首先调用函数ReadXSLTString从资源文件“SkyTreeViewControl.xslt”加载一个XML文档,然后创建一个NodeXmlDocument变量,调用它的LoadXml函数对根节点进行XML序列化所得的XML字符串来生成XML文档,然后创建一个 System.Xml.Xsl.XslCompiledTransform类型的XSLT转换引擎,调用它的Load方法加载XSLT模板,调用它的 Transform方法来执行XSLT转换,转换结果输出到myStrWriter的字符串书写器中,这个字符串书写器中的内容就是用于显示树状结构的 HTML代码。然后程序使用RenderContent函数的writer参数将这个HTML代码输出到页面中。
更多精彩
赞助商链接