Gridviewのasp.netで、楽観的な同時実行を回避する方法は? レコードがすでに編集モードになっているときに、ユーザーが編集しないように制限するにはどうすればよいですか?
1 に答える
データがクライアント側で変更されたかどうかを確認するには:
情報を含む TextBox と、「css: visibility:hidden」と同じ TextBox と、元の情報を含む読み取り専用をお勧めします。ユーザーがサーバーへのポストバックを行わずに TextBox の値を変更した場合は、JavaScript を使用してクライアント側でいつでも確認できます。
ユーザーの編集をロックするには:
これを管理するのがaspで難しいのは、通信が非同期の方法であるためです。たとえば、「ロックされた」(ビット) データベース テーブルに新しい列を追加し、誰かが編集モードに入った場合にデータセットをロックできます。次に、他のユーザーからロックされた値を確認し、そのユーザーの編集モードを制限できます。(セッションの実行などに注意してください。おそらく、タイムスタンプをロックとして使用し、セッション分が期限切れになった後にロックを開きます)。
ユーザーが編集モードの場合:
彼をロックすることはできません(サーバーへのポストバックを行わず、間隔を置いてロックを要求する場合(私のAJAXで行われます))。ロックされた値を確認できるのは、変更を保存しようとしたときだけです。しかし、これは彼がすでにいくつかの値を変更しており、それらが元に戻されるため、遅すぎます。彼がそれらの変更を上書きしたい場合は、データベースで変更された値を見ることができるかどうか彼に尋ねることができます.
これが役に立てば幸いです、誰も