0

stringbuilder を使用して、データベース内の各レコードのクライアント側チェックボックスを出力する asp.net ページがあります。

データベースのブール値とポストバックに応じて、チェックボックスをオンにする必要があるかどうかを確認する必要があります。すべてのチェックボックスの状態を維持します。

誰かがこれに対する良いアプローチを提案できますか?

4

1 に答える 1

1

ViewStateをオンにしてCheckBoxListを使用すると、2番目の部分がカバーされます。CheckBoxListのListItemの値をビット列の名前のようなものに設定すると、cbl.Items.FindByValue( "colName")。Checked=colValueおよびcolValue=cbl.Items.FindByValue( "colName"状態をロードして保存するためにチェックされています。

編集:StringBuilderアプローチを使用する必要がある場合

手っ取り早い方法は、マークアップを作成し、レコードセットをループしながら値を設定することです。これにより、ポストバック時に、値をDBから読み取る前に、値をDBに保存します。保存/読み込みの順序を混同すると、データベースは更新されますが、ページが更新されるとユーザーには古い値が表示され、もう一度[保存]をクリックすると、新しい値が古い値で上書きされます。

dbの負荷を軽減する必要がある場合は、ポストバック[つまりif(Page.IsPostBack)]で、代わりにRequest.Form["chkBxName"]から値をロードします。

フレームワークのような独自のViewStateを構築せずにそれを行う非常に巧妙な方法はないと思います。

于 2009-09-09T17:36:06.907 に答える