ASP.NET在回发上动态添加UserControl和缓存数据

时间:2012-05-11 06:55:32

标签: asp.net c#-4.0 user-controls

我有一个Report.aspx页面,可以加载不同的UserControls来交替查看特定的对象数据。 UserControls继承了覆盖特定操作方法的相同基类型类。我为每个UserControl使用特定的Service类来获取实现具有操作签名的特定接口的数据。

我现在使用工厂模式将实际的UserControl类型返回到Report.aspx并将其加载到PanelControl,然后调用控制方法以根据某些参数获取一些数据。 / p>

由于其动态特性,每个回发都应加载此UserControl,接受任何其他解决方案。在每个回发虽然我不需要从调用DL的BL加载数据。我试图找到一个解决方案,向BL显示我不需要你再次调用数据,因为我只是回发其他问题(例如下载报告文件,打印等)。我希望这发生在BL级别,而不是ASPX前端。到目前为止,我认为我应该让BL知道这个(PostBack或!PostBack)。我想我可以创建一个参数true,false并传递PostBack属性。

任何想法,架构和最佳实践都是如此受欢迎。

3 个答案:

答案 0 :(得分:0)

为什么不包装逻辑来调用if(!Page.IsPostback){....}中的BL?

答案 1 :(得分:0)

你能否详细阐述你的声明“在每次回发中虽然我不需要从调用DL的BL加载数据。”??在每次回发期间,用户控件需要显示数据(即使它与上一次回发的数据相同),因为usercontrol与ASPNET网页经历相同的生命周期。你怎么能阻止它?

答案 2 :(得分:0)

我已经确定一个非常好的解决方案是.NET 4.0中的System.Runtime.Caching。 对于您需要使用它的每一层都非常好。

http://msdn.microsoft.com/en-us/library/dd985642