代码之家  ›  专栏  ›  技术社区  › 

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

  •  0
  •  · 技术社区  · 16 年前

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

    你能告诉我我们该怎么做吗?任何参考链接或文件将是伟大的。

    非常感谢, 当做, 纳尼

    2 回复  |  直到 16 年前
        1
  •  0
  •   Bob    16 年前

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

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

        2
  •  0
  •   Juri    16 年前

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

    公共部分类MyPaged:Page {

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

      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
    }
    

    这可能是另一个选项,它的优点是您的表示逻辑甚至不知道缓存,如果您添加webservice访问,您也会从缓存中受益。唯一需要注意的是,用户是否有可能更改国家(在您的示例中,我不这么认为)。