セットアップ: 現在、SqlDataSourceを使用して、更新パネル内にGridViewコントロールを含むページがあります。 GridViewをX秒ごとに更新するためのタイマー設定があります。通常、GridViewが更新するたびに、グリッドビューにデータの新しい行が4〜5回更新され、最後の4〜5回は削除されます。私は一度に15の結果しか表示しておらず、すべてのアップデートで新しい結果が出ます。ASP.NET GridViewコントロールで行選択を維持する
問題: GridViewが更新されている間に、ユーザーが行を選択できるようにしました。 SelectedIndexプロパティを設定することでこれを処理しています。ただし、行を選択してグリッドを更新すると、選択した行が約4-5行だけプッシュダウンされ、以前選択された索引のデータが選択されます。クリックした場所ではなく、クリックした場所が選択されます。
可能な場合は、SqlDataSource/Gridviewからグリッドビューにいくつの新しい行が追加されたかを判断する方法が必要です。または、SelectedIndexだけでなく、行内のデータによって選択されたデータを維持する方法。
ご協力いただきありがとうございます。
解決済み: 私はグリッドに新しい非表示の列を追加し、DBから選択した一意のIDを追跡しています。データバインディングの前に配列を設定し、それを新しい配列と比較することによって、データバインディングの後に簡単なIntersectを使用して、同じ行数を判断することができました。それから、このポストバックがどれだけ新しいかを合計から判断するためにそれを使用しました。
うん。わかります。はい、それはうまくいくでしょうが、それは私のシナリオでは、それは多くの処理になる可能性があります。また、データバインドされた行の数が新しいかどうかを判断する方法があるのかどうか疑問に思っていましたが、これは大いに役立ちます。 – user1048281
グリッドには何行目がありますか?私はこれが多くの処理を必要とするとは思わない...彼らは数字だけであり、検索は本当に速く実行されるだろう。 –
私はグリッドに新しい目に見えない列を追加して、DBから選択した一意のIDを追跡しています。データバインディングの前に配列を設定し、それを新しい配列と比較することによって、データバインディングの後に簡単なIntersectを使用して、同じ行数を判断することができました。それから、このポストバックがどれだけ新しいかを合計から判断するためにそれを使用しました。 – user1048281