我们正在开发一个ASP.NET应用程序。它有3-4个表单显示国家/地区列表下拉列表。在这里,我们希望每次通过从数据库获取数据来避免绑定这些下拉列表。相反,寻找一个更好的绑定它的做法,比如应用程序负载/其他一些。
请您告诉我们如何才能解决这个问题?任何参考链接或文档都会很棒。
非常感谢, 问候, 纳尼
答案 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服务访问权限,您也可以从缓存中受益。您唯一需要注意的是,用户是否可以更改国家/地区(在您的示例中我不认为)。