0

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

请让我知道我们如何着手解决这个问题?任何参考链接或文档都会很棒。

非常感谢,问候, 纳尼

4

2 回答 2

0

将下拉列表放在用户控件中并在用户控件上启用输出缓存

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

于 2009-09-23T15:35:41.330 回答
0

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

公共部分类MyPaged:页面{

公共无效页面加载(..){

  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 服务访问,您也将从缓存中受益。您唯一需要注意的是用户是否有可能更改国家/地区(在您的示例中我不认为)。

于 2009-09-23T15:50:22.273 回答