2012-04-15 5 views
1

グリッドビューにはチェックボックスがあります。私はそれらをクリックするとSelectedRss_Click関数に行き、私はそれに感謝のデータを保持することができます。しかし、グリッドビューのページを変更すると、チェックされたチェックボックスはチェックされません。どうすればこの問題を解決できますか?ページがグリッドビューで変更されたときに、どうすればいいですか?

私のSelectedRss_Click機能。

protected void SelectedRss_Click(object sender, EventArgs e) 
{ 
    ArrayList list = new ArrayList(); 
    ArrayList listcategory = new ArrayList(); 
    list.Clear(); 
    listcategory.Clear();     
    foreach (GridViewRow row in GridView1.Rows) 
    { 
     // Access the CheckBox 
     CheckBox cb = (CheckBox)row.FindControl("FeedSelector"); 
     if (cb != null && cb.Checked) 
     { 
      string feedURL = ((HiddenField)GridView1.Rows[row.RowIndex].FindControl("HiddenField1")).Value; 
      string rsscategory = GridView1.Rows[row.RowIndex].Cells[2].Text.ToString(); 
      list.Add(feedURL); 
      listcategory.Add(rsscategory); 
      Session["SelectedFeedURL"] = list; 
      Session["SelectedFeedCategory"] = listcategory; 
     } 
    } 
} 
+0

ページを破棄しないでください。 – MoonKnight

+0

ページの廃棄方法と場所は? – leventkalay92

+1

@Pankajガルグの答えは良いものです。あなたは、代わりにページの定義を呼び出し側のクラスでグローバルにすることができます。これは、ページとその内容を再利用するために保持します... – MoonKnight

答えて

1

ViewState

Page Life Cycle年末までにすべてのコントロールがDisposedを取得し、State of the Pageが失われてしまうからです。

  • 予防処置

    GridViewPageindexChanging場合には、GridViewのページを変更しながら

    、 保存がViewStateで現在のページのチェックボックスの行の詳細を確認しました。同様に は、チェックされていないGridView CheckBox行からViewStateの行を削除できます。

  • 対処ViewState

    保存されたレコードがPageIndexChangingイベントでのGridViewにチェックされます。

+0

私はpageindexchangingでコードをコピーしようとしましたが、どうすればグリッドビューの状態を保存できますか? – leventkalay92

+0

私は上記のコードをコピーすることによってそれを行いました。それ以外の方法はありますか?レコードを保存します。 – leventkalay92

関連する問題