0

现在,每次用户使用数据分页器时,都会重新填充整个数据源,这需要时间..

那么为什么使用缓存有一个快速简单的方法吗?(我从未使用过它)......或者我应该将 eniter 东西存储在 Session 对象中并以某种方式检测是否已经进行了初始数据加载?

 PersonBusiness pb = new PersonBusiness(new PersonRepository());

    if (personFilter == null)
    {
        listPerson = pb.GetAllPersons(strServer, strAppPath);
    }
 lvPersons.DataSource = listPerson;
    lvPersons.DataBind();
4

1 回答 1

0

这比我想象的要容易得多。。我只需要几行,listview和分页就可以了。一个例外是当设置了新的过滤器时,你需要删除缓存

    if (Cache.Get("Members") != null)
    {
        listPerson = (List<Person>)Cache.Get("Members");
    }
    else
    {
        if (personFilter == null)
        {
            listPerson = pb.GetAllPersons(strServer, strAppPath);
            Cache.Insert("Members", listPerson, null, DateTime.Now.AddSeconds(60), TimeSpan.Zero);
        }
        else
        {
            listPerson = pb.GetSomePersons(strServer, strAppPath, personFilter.FirstName, personFilter.LastName, personFilter.State, personFilter.Company, personFilter.Committees, personFilter.IndType, personFilter.MemberType);
            Cache.Insert("Members", listPerson, null, DateTime.Now.AddSeconds(60), TimeSpan.Zero);
        }
    }
于 2012-09-24T16:40:04.437 回答