2008-10-12 87 views
0

我希望使用xml和xsl在asp.net页面上生成控件。ASP.NET,XSLT和动态控件

我目前有一个asp.net内容页面,其中包含一个xml控件。加载页面时,会加载一个xml文件,并提取所需的元素并将其设置为xml控件的DocumentContent,并将xml控件的TransformSource设置为相应的xsl文件。

在xsl文件中,我希望使用模板来创建asp.net控件,具体取决于xml的内容。有没有一种简单的方法在内容页上使用xml控件进行此操作?

+0

发布一些示例XML – 2008-10-12 19:39:55

回答

0

生成的转换输出未被解析为作为控件集添加到页面中。而是将生成的输出发送到响应。因此,您无法将转换应用于将生成新控件的XML控件。

可能有一种方法可以创建转换结果并调用一些可应用于页面的解析,但不符合您的“简单”要求。

0

我不知道任何容易方式做到这一点,但也有一些系统在那里这些动态生成的ASPNET标记,然后从内存流(或类似)发送到ASPNET运行。

我认为umbraco使用类似这样的系统,但初始构建器机制可能比aspnet控件稍低一点。使用httpmodule或其他在请求管道中早先命中的内容可能是可以实现的。

1

在您的XSL中注册一个名称空间,以便您可以将.NET服务器端标签放入其中。针对您的XML运行您的XSL转换。通过Page.ParseControls()运行变换的结果。这会给你一个很好的控制层次结构。将该函数的输出添加到Controls集合(或占位符的控件集合)中,并且您可以轻松完成。

在.NET中使用动态控件有许多警告,所以要小心。