0

我希望使用 xml 和 xsl 在 asp.net 页面上生成控件。

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

在 xsl 文件中,我希望使用模板根据 xml 的内容创建 asp.net 控件。是否有一种简单的方法可以使用内容页面上的 xml 控件来执行此操作?

4

3 回答 3

1

在您的 XSL 中注册一个命名空间,以便您可以将 .NET 服务器端标记放入其中。针对您的 XML 运行您的 XSL 转换。通过 Page.ParseControls() 运行转换的结果。这将为您提供一个很好的控制层次结构。将该函数的输出添加到您的控件集合(或占位符的控件集合)中,您就可以开始了。

在 .NET 中使用动态控件有很多注意事项,所以要小心。

于 2008-10-13T02:12:30.167 回答
0

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

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

于 2008-10-12T21:17:57.403 回答
0

我不知道有什么简单的方法可以做到这一点,但是有一些系统可以即时生成 aspnet 标记,然后将其从内存流(或类似的)发送到 aspnet 运行时。

我认为 umbraco 使用类似的系统,但最初的构建器机制可能比 aspnet 控件低一点。使用 httpmodule 或其他在请求管道中较早命中的东西可能可以实现。

于 2008-10-12T21:40:23.053 回答