2011-12-28 8 views
1

私のプロジェクトにはASPxGridViewと2つのラジオボタンがあります。ラジオボタングループの選択を変更すると、データソースの選択コマンドが変更されます。その後、2ページ目をクリックすると、データソースの選択コマンドが以前の状況に変わります。ここでASPxGridViewページングの問題

は例..です http://www.2shared.com/file/HwnBYcFS/WebApplication8.html

注:ページをロードするデータ・ソース・フィルター「ネオ年代、 『すべて』のラジオボタンをクリックして、ページを変更します。答えを

おかげ..グリッド
2.implement initイベントハンドラに

+0

おそらく、それはViewstateに格納されていませんか?それとも、以前の状況に戻すために作品コードを出すのですか? – Ruben

+0

実行してはいけませんが、実行しているのか分かりませんでした。あなたはその例を試しましたか? –

+0

いいえ、私はこのPCでそれを試すことはできません。ビューステートに保存されているかどうか調べてみましたか? – Ruben

答えて

2

1.add initイベントハンドラ

protected void Grid_Init(object sender, EventArgs e) 
{ 
    if (!IsCallback) 
     Page.Session["selectCommand"] = null; 

    if (Page.Session["selectCommand"] != null) 
     AccessDataSource1.SelectCommand = (string)Page.Session["selectCommand"]; 
    grid.DataBind(); 
} 

3.Changeカスタムコールバックハンドラ

protected void grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) 
{ 
    if (e.Parameters == "Neo") 
    { 
     AccessDataSource1.SelectCommand = "select Name,Surname from Person where Name='Neo'"; 
    } 
    else if (e.Parameters == "All") 
    { 
     AccessDataSource1.SelectCommand = "select Name, Surname from Person"; 
    } 
    Page.Session["selectCommand"] = AccessDataSource1.SelectCommand; 
    grid.DataBind(); 
} 

4 .use gotfocusの代わりにCheckedChangeクライアント側イベント

<ClientSideEvents CheckedChanged=" 
    function(s, e)   
    { 
     if(s.GetValue()) 
      grid.PerformCallback(&quot;Neo&quot;); 
    }" /> 
+0

ええ、これは私が解決する方法です。 –

+0

私は質問があります。 CheckedChangedイベントを使用すると、関数は2回発生します。そのため、私はフォーカスイベントを使用します。それは問題を引き起こすか? –

+0

ラジオボタンごとに2回、またはラジオボタンごとに1回発射されますか?重要なことは、グリッドコールバックが一度起動されることです。 – Filip

関連する問題