-1

gridviewにチェックボックスのリストがあります。

1つをチェックすることも、10個までチェックすることもできます。

ページングアプリで1つまたは複数のボックスをオンにすると、次のページに移動し、チェックボックスがオフになります。

ユーザーがチェックを外すまでチェックボックスをオンのままにするにはどうすればよいですか?

以下のコードは機能していません。

For Each r As GridViewRow In GridMaks.Rows
    If CType(r.Cells(0).FindControl("makos"), CheckBox).Checked Then
        Dim marko As String = baseHint & "&cup=" & r.Cells(4).Text
        CType(r.Cells(0).FindControl("marko"), CheckBox).Checked = True '// added this hoping to keep checkbox checked but it doesn't work
    End If
Next

2つのフレーバーc#とvb.netを含めて申し訳ありません。それが助けになるなら、私はc#をvbに変換することができます。

4

1 に答える 1

1

ページが読み込まれるたびにデータをグリッドにバインドしている場合、チェックボックスはリセットされているため、チェックボックスは保持されません。以下の簡単なサンプルコードのようなチェックを実行して、リクエストがポストバックではない場合にのみデータをバインドしてみてください。

if (IsPostBack) { 
    // It is a postback, don't bind data
} else { 
    // It is not a postback, bind data
} 

また、ページング中のチェックボックスの状態の永続化に関するこの記事は、必要なものに役立つ場合があります。GridViewの「PageChanging」イベントで、この記事では、チェックボックスがオンになっている各行の行インデックスをリストに保存し、そのリストをViewState内に保存するように指示されています。ページが変更されたら、ViewStateからそのリストを取得し、GridViewチェックボックスを再入力します。

于 2012-08-27T17:37:37.860 に答える