2

タンパク質配列の大規模なデータベースにさまざまなビューを表示する ASP.NET アプリケーションがあります。訪問者がデータを参照するときに、GridView 行の CheckBox を選択して、後で圧縮されたテキスト ファイルとしてダウンロードするシーケンスにフラグを設定できるようにしたいと考えています。選択を保存したくないので、セッションで有効でなければなりません。

今の私の考えは、GridView に TemplateField を追加し、それに CheckBox を追加することです。チェック イベントを処理し、シーケンス ID をセッション状態に保存するつもりです。ユーザーがダウンロード ページに移動すると、セッション データが取得され、ダウンロードしようとしているシーケンスのリストが表示され、ファイルが送信されます。明らかに、フォームの読み込み/ページの切り替えごとにセッション データを再解析する必要もあります。

だから私は実際にこれについていくつかの質問があります:

1) 私は働きすぎていませんか? これを実装する簡単な方法はありますか?

2) セッション状態のサーバーへのすべてのラウンドトリップは、パフォーマンスの問題になる可能性がありますか? ページに「ダウンロード用に保存」ボタンを配置して、バッチ処理して役立つようにすることができます。チェック イベントの処理は、別の場所に移動した場合に誤って状態を失うことがないため、よりエラー トレラントに見えます。

3) チェック ボックスの列で GridView を並べ替えることができますか? 最初にチェック ボックスの列で並べ替え、次に現在並べ替えられている列で並べ替えたいと思います (たとえば、GridView が姓で並べ替えられている場合は、チェック列で並べ替え、次に姓で並べ替えます)。

重要な場合、私は C#、.NET 3.5、VS2008 を使用しており、SQLServerExpress テーブルから GridView を作成する単純なドラッグ アンド ドロップの方法を使用しています。

4

2 に答える 2

1

ページ メソッドを介して AJAX を使用して、セッション状態のチェックボックスの状態を追跡します。これにより、往復のコストが最小限に抑えられます。

並べ替え列を指定する必要があるため、GridView のチェック ボックスで並べ替えることができないと思います。これは、保存されたセッション情報をテーブルのデータと基本的に結合する合成データ ソースを作成することで実行できますが、テーブルに直接接続された SQLDataSource を使用することはできません。

于 2008-10-09T23:33:49.423 に答える
0

もっと簡単な方法があるかどうかはわかりませんが、他の質問については:

2.) 堅牢性とネットワーク トラフィックのバランスを自分で決める必要があります。check イベントを使用すると、かなりサーバーに戻ることになります。別のイベント (グリッドのフォーカスを失う、明示的な「更新/保存」ボタンのクリック、または別のページへの移動) を使用すると、情報が失われる可能性がありますが、トラフィックが削減されます。これは、「正解」のない UI デザインの決定です。

3.) 自動ではないかもしれませんが、可能です。DataGridViews は、チェックボックスの列で自動的に並べ替えるハンドラーを生成することを知っています。通常の GridView ではそれほど簡単かどうかはわかりません。DGV ではなく GV を使用している理由はありますか?

于 2008-10-09T17:15:51.433 に答える