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

これは私が思っていたよりもずっと簡単でした..必要なのは数行とリストビューとページングの作業だけでした..1つの例外は、新しいフィルターが設定されている場合、キャッシュを削除する必要がある場合です

    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 に答える