2009-06-16 8 views
1

どのようにグリッドビューで変更された行をすべて見つけることができますか?どのような形式でもAjaxを使用することはできませんGridView ASP.Netの行を変更する

+0

あなたは何を変更したのですか?このGridviewにデータソースが設定されていますか? – Eric

答えて

1

グリッドの内容が変更される前に取得します(元のgridviewデータソースバインディングの結果をキャッシュするなど)。次に、データセット/データテーブル/を参照して保存し、内容をグリッドビューの現在の行と比較します。

1

GridView.GetAllChangedRows()のようなメソッドはありません。これを行うには効率的な方法はありません。ですから、行を変更するたびに(RowUpdatedメソッドを使用して)追加するシーンリストを保持し、必要に応じてこのリストをクリアします。

0

これは、行内で編集する列の数によって異なります。

行に編集可能な列が1つしかない場合は、変更するコントロールにjavascriptメソッドを関連付けることができます。このメソッドでは、別の隠しフィールドおよびサーバー側に保存できるROWIDを取得できますidsが隠しフィールドに格納されているすべての行を取得できます。

この場合、編集可能な行がある場合は、元のデータソースをどこかに保存して、rowclickイベントを使用してjavascriptメソッドを設定して、ユーザーが選択するROWIDを取得する必要があります。次に、ユーザーが送信ボタンをクリックすると、行IDが隠しフィールドに格納されているすべての行が取得され、データソース内の同じrowidを持つ行IDと比較されます。これはあなたのポイントからの最良のアプローチです。

ここでは、グリッドに1000行あり、ユーザーが180行しかクリックしないと仮定します。その場合は、180行だけを比較し、残りの行を比較しません。

誰かがこれより良いアイデアを持っているかどうか教えてください。

関連する問題