2011-12-03 19 views
1

まずはこれを実現したいと思います。リクエスト間にASP.NET WebFormsページの状態を格納する方法

GridViewとその他のコントロールを持つASP.NETページを想像してみてください。ユーザーは、ページング、並べ替え、フィルタリングをGridViewに適用し、リンクをクリックして別のページに移動します。彼または彼女は最終的にいくつかのページをさまよってから、GridViewページに戻ります。次に、ページを出たときと同じページング/並べ替え/フィルタリングでグリッドが表示されます。

私はこれを1ページに簡単に行うことができますが、この動作を数十ページに適用する必要があります。

String PageStateKey { 
    get { return "PageState_" + Page.UniqueID; } 
} 

void Page_PreRender() { 
    // this is executed in every postback, and saves page state for future requests 
    var pageState = GetCurrentPageState(); // gets an object with ViewState, query string, and form values 
    Session[PageStateKey] = pageState; // persist page state to session 
} 

void Page_Init() { 
    // this restores a page state saved in a previous request, if any 
    var restoredPageState = Session[PageStateKey]; 
    if (restoredPageState != null) { 
     ApplySavedStateToPage(restoredPageState); 
    } 
} 

はその後、私のページが、このような StatePageか何かから継承できます。

私はの効果に何かをしたいです。私はいくつかの解決策を見つけましたが、彼らは私のコードを変更する必要が(すなわち:代わりなどのResponse.Redirectのページをリダイレクトするためにカスタムメソッドを使用して)

事前のおかげ

+0

やあ、どのようにあなたのソリューションですか?私はあなたと同じシナリオを持っています。あなたは私にギルドをしてもらえますか? – user998405

答えて

4

に私は、このソリューションを使用してそれを解決することができました:

http://www.codeproject.com/KB/applications/persistentstatepage.aspx?fid=73573&df=90&mpp=25&noise=3&prof=False&sort=Position&view=Quick&fr=26

私は2つだけ修正しました:

1)それはASP.NET 4で動作させるための非コメント行39:

// EnableEventValidation=false; 

2))は、常にSavePageState(呼び出すことSavePageStateToPersistentMediumを変更かかわらず、それがリダイレクトか

+0

あなたは私にいくつかの例を教えてもらえますか?私はあなたが送る記事についてundestandを傾けません – user998405

関連する問題