ASP.NET - 一次加载控件(在应用程序加载时)

时间:2009-09-23 15:29:25

标签: asp.net controls loading

我们正在开发一个ASP.NET应用程序。它有3-4个表单显示国家/地区列表下拉列表。在这里,我们希望每次通过从数据库获取数据来避免绑定这些下拉列表。相反,寻找一个更好的绑定它的做法,比如应用程序负载/其他一些。

请您告诉我们如何才能解决这个问题?任何参考链接或文档都会很棒。

非常感谢, 问候, 纳尼

2 个答案:

答案 0 :(得分:0)

将下拉列表放在用户控件中,并在用户控件上启用output caching

此解决方案会导致呈现的HTML被缓存,因此不需要在每个页面请求上调用数据绑定。

答案 1 :(得分:0)

另一种可能性是在BL逻辑上使用一些缓存机制。例如,在你的页面/ usercontrol中你可以拥有(不要太严格我的语法;))

公共部分类MyPaged:Page {

public void PageLoad(..)    {

  if(!IsPostBack)
  {
     dropDownCountries.DataSource = CountryBL.GetCountries();
     dropDownCountries.DataBind();
  }
  ...

}

}

并且在您的业务逻辑类中,您可以执行某种缓存,其中您可能拥有一个单独的类,其中包含国家/地区和函数作为缓存。伪代码方法可以是

public IList<Country> GetCountries
{
   //if the cache is empty or it should be refreshed, fills the local 
   //list of countries, i.e. the cache, with fresh entries from the DB
   //there could be some time condition, i.e. refresh every day or so
   EnsureCacheValid();

   return CachedCountries; //the cache of countries
}

这可能是另一种选择,其优势在于您的表示逻辑甚至不知道缓存,如果您要添加Web服务访问权限,您也可以从缓存中受益。您唯一需要注意的是,用户是否可以更改国家/地区(在您的示例中我不认为)。