【问题标题】:How can I use an XML file to select dyanmic templates for an ASP.net Repeater?如何使用 XML 文件为 ASP.net 中继器选择动态模板?
【发布时间】:2010-12-19 17:29:05
【问题描述】:

我正在开发一个具有转发器的应用程序,该转发器将基于底层 DataItem(在本例中为产品)为每一行使用动态模板。我想做的是拥有某种 XML 文件,该文件将存储哪些模板将与哪些模板一起使用,然后如果没有为产品指定一个默认模板,则使用默认模板。我的产品目录不包含特别多的产品,但必须为每一行打开和解析一个 XML 文件几乎肯定会对性能产生不利影响。我想做的是让 ASP.net 引擎将 XML 文件中的条目编译成某种全局集合,以便在需要时轻松访问。理想情况下,应用程序能够确定我何时对文件进行了更改,并在必要时自动重新编译集合并重新启动应用程序。如果我的理解是正确的,这已经是引擎处理 web.config 文件的方式了。

有谁知道这样的方法是否可行,以及我如何能够实现它?

谢谢,

迈克

【问题讨论】:

    标签: asp.net xml configuration repeater


    【解决方案1】:

    您可能会在每次加载页面时打开并解析 XML 文件,而不会出现任何明显不利的性能问题。将结果扔到页面级集合中,并为每个转发器行从中读取。这至少可以防止您必须管理具有文件更改更新依赖项的全局集合。

    我确实以类似的方式使用 XML,尽管主要用于非关键公司 Intranet 类型的应用程序,所以我肯定会说您的方法并不太糟糕。 :) 在我的具体情况下,我最终将 XML 放在了一个全局应用程序级别的对象中,如果它发生变化,我必须手动重新启动应用程序以重新加载 XML。

    如果您确实想处理您的理想方案,我希望将 XML 模板存储在 Cache 对象中并在 XML 文件上设置 CacheDependency

    【讨论】:

    • 感谢您的回复。我想最后我将只使用页面级别的集合,因为所有这些模板选择内容都被放入 Web 用户控件中。我仍然会阅读您发布的 CacheDependency 链接,因为将来我可能仍然需要做类似的事情。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多