項目を選択した後に JavaScript を使用して ASP.NET グリッドの検索条件を維持する方法

項目を選択した後に JavaScript を使用して ASP.NET グリッドの検索条件を維持する方法
項目を選択した後に JavaScript を使用して ASP.NET グリッドの検索条件を維持する方法

ASP.NET グリッドの検索と選択におけるユーザー エクスペリエンスの最適化

顧客がグリッド インターフェイス内でオブジェクトを検索および選択できるようにすることは、ASP.NET アプリケーションではよく使用される機能です。ただし、開発者は、項目を選択するとグリッドが更新され、検索パラメーターが失われるという問題に頻繁に遭遇します。新しいアイテムを選択するたびに検索をやり直す必要があるため、ユーザーはイライラする可能性があります。

使いやすさを向上させるために、ポストバックまたはグリッドの更新後に検索条件を保持することが不可欠です。これは、消費者が同じ基準に基づいて複数のオプションを選択する必要がある場合に特に重要です。検索語が失われた場合、このプロセスは不必要に繰り返されます。

幸いなことに、JavaScript と ASP.NET の組み込み機能を利用することで、グリッド内の項目を選択した後でも検索キーワードが継続されるようにすることができます。 DataTables と ASP.NET のビューステートを補完するメソッドを使用することで、ユーザー エクスペリエンスをよりスムーズにすることができます。

次のガイドでは、JavaScript と VB.Net を使用して ASP.NET プロジェクトでこれを実現する方法を見ていきます。また、実際のシナリオを取り上げて、グリッドを更新するときに検索条件を効果的に維持する方法を示します。

指示 使用例
sessionStorage.getItem() 検索パラメータは、このコマンドを使用してブラウザのセッション ストレージから取得できます。この場合、以前に提供された検索値を取得し、ページの更新またはグリッドの更新後に検索フィールドが再度入力されるようにします。
sessionStorage.setItem() 現在の検索クエリをブラウザのセッション ストレージに保存します。これにより、ユーザーが項目を選択したり、ASP.NET グリッドがポストバックしたりした場合でも、検索パラメーターが失われることがなくなります。
ScriptManager.RegisterStartupScript() ASP.NET クライアント側スクリプトをサーバーから登録して実行します。グリッドの検索ボックスに検索値を保存するために、ここでは、ページの読み込み時またはポストバック後のいずれかに、保存された検索基準を適用するために利用されます。
DataTable().search() 更新またはページの読み込み後、キャッシュされた検索値は、この DataTables メソッドを使用してグリッドに適用されます。これにより、以前に入力された検索クエリに従ってグリッドがフィルタリングされることが保証されます。
DataTable().draw() 検索条件を適用し、DataTable を再描画します。 AJAX または別の技術を使用してページが更新または更新される場合、検索用語を再適用してフィルター処理されたデータを表示するには、このコマンドが必要です。
on('keyup') 各キーストロークが記録されるように、検索入力ボックスにイベント ハンドラーを追加します。この場合、現在の検索入力でセッション ストレージを更新することでグリッドが更新または再ロードされた場合でも、検索値が維持されることが保証されます。
__doPostBack() この ASP.NET 関数は、JavaScript を使用してポストバックを開始することにより、データをサーバーに送り返します。グリッド内の項目が選択されると、スクリプトを使用して現在の検索値がサーバーに通信され、サーバー側のプロセス中に検索状態が維持されることが保証されます。
$.ajax() サーバーに非同期 HTTP リクエストを送信します。この場合、ページ全体をリロードせずに検索条件をサーバーに送信することで、AJAX を使用して Web サイトの特定の領域 (グリッドなど) を更新しながら検索入力を保持するのに役立ちます。

ASP.NET グリッドで検索条件を保持するためのスクリプト ソリューションを理解する

提供されるスクリプトの目的は、ユーザーがグリッドから選択するときに検索パラメーターを見失うという ASP.NET アプリケーションの一般的な問題に対処することです。最初のアプローチでは、JavaScript を使用してクライアント側で検索入力を保存します。 セッションストレージ 関数。この戦略によりユーザー エクスペリエンスが向上し、Web サイトがリロードされた後でも検索フレーズがアクティブなままになります。ページがリロードされるか項目が選択されると、入力をローカルにキャプチャして保存することで、キャッシュされた検索値をグリッドに再度適用できます。この方法のおかげで、ユーザーは同じ条件を入力し続ける必要がなくなります。

別の方法ではサーバー側を使用します。 ビューステート ASP.NETの機能。この場合、検索値は ViewState オブジェクトに保持され、ポストバック間でデータが保持されます。 ViewState に保持されている値は、ユーザーがグリッドを操作して項目を選択すると、ページに送り返されます。この方法では、検索パラメーターがセッション全体でアクセス可能であり、サーバー側の処理に簡単に組み込まれることが保証されます。検索入力の損失を防ぐために、サーバーはスクリプトを実行して検索をクライアント側グリッドに再適用できます。

アヤックス は、ページ全体のリロードを停止する 3 番目のアプローチで使用されます。項目が選択されるとページの動的な更新が行われ、サーバーへの非同期リクエストがトリガーされます。これにより、グリッドが更新される間、AJAX リクエストで指定された検索条件がそのまま維持されます。更新が完了すると、JavaScript 関数は検索値をグリッドに再適用します。この手法では、グリッドの状態を維持しながらマテリアルを非同期的に更新して、ユーザー エクスペリエンスを最大化します。

別の方法で、これらの各メソッドは検索入力の保存を保証します。より単純なクライアント側ソリューションの場合は、sessionStorage 手法が適切ですが、ViewState はより包括的な ASP.NET 戦略を提供します。 AJAX は、サーバー側の更新とクライアント側の対話性の間のバランスを提供することで、ユーザーのアクションが検索プロセスに干渉しないようにします。すべてのソリューションは、ユーザーの摩擦を最小限に抑え、シームレスな ASP.NET グリッドベースのデータ対話エクスペリエンスを維持することを目的として、パフォーマンスと使いやすさのベスト プラクティスに準拠しています。

項目選択後の ASP.NET グリッドでの検索条件の維持

アプローチ 1: セッション ストレージで JavaScript を使用する (クライアント側)

// JavaScript to store search criteria in session storage
$(document).ready(function() {
  var searchValue = sessionStorage.getItem('searchValue') || '';
  var table = $('#gridViewArtifacts').DataTable({
    lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
    searching: true,
    ordering: true,
    paging: true
  });
  table.search(searchValue).draw(); // Apply search from session
  $('#gridViewArtifacts_filter input').on('keyup', function() {
    sessionStorage.setItem('searchValue', $(this).val());
  });
});

ASP.NET でのポストバック中の検索入力の保持

アプローチ 2: ASP.NET ViewState の使用 (サーバー側)

' VB.NET Code-Behind: Store search criteria in ViewState
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
  If Not IsPostBack Then
    ViewState("SearchValue") = String.Empty
  End If
End Sub
Protected Sub chkSelect_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
  ' Retain search criteria in ViewState
  Dim searchValue As String = CType(ViewState("SearchValue"), String)
  ScriptManager.RegisterStartupScript(Me, Me.GetType(), "ApplySearch",
    "document.getElementById('gridViewArtifacts_filter').value = '" & searchValue & "';", True)
End Sub
' Frontend JavaScript to capture search input
$(document).ready(function() {
  $('#gridViewArtifacts_filter input').on('input', function() {
    __doPostBack('UpdateSearch', $(this).val());
  });
});

AJAX を使用して検索条件を保持し、ページ全体のリロードを防止する

アプローチ 3: 部分的なページ更新のための AJAX

// JavaScript for AJAX request to retain search after item selection
$(document).ready(function() {
  $('#gridViewArtifacts').DataTable({
    lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
    searching: true,
    ordering: true,
    paging: true
  });
  $('#chkSelect').on('change', function() {
    var searchValue = $('#gridViewArtifacts_filter input').val();
    $.ajax({
      type: 'POST',
      url: 'UpdateGrid.aspx',
      data: { searchValue: searchValue },
      success: function() {
        // Reapply search after AJAX update
        $('#gridViewArtifacts').DataTable().search(searchValue).draw();
      }
    });
  });
});

ASP.NET と JavaScript によるグリッド検索の永続性の強化

ページの更新またはポストバック後にグリッド内で選択された項目の強調表示された状態を維持することは、ASP.NET グリッドのユーザー エクスペリエンスをそのまま維持するために重要です。ユーザーは、複数の選択を行ったときに、インターフェイスの他の領域と対話する際に、選択内容がそのまま維持されることを期待します。グリッドの変更の結果として特定の状態がリセットされる可能性があるため、これは多くの場合困難です。 JavaScript と ビューステートを有効にする ポストバック後に選択状態を保存して再適用する属性を使用することは、これを解決する 1 つの方法です。

開発者は、次のようなクライアント側ストレージを使用できます。 ローカルストレージ または セッションストレージ、検索基準を保存するだけでなく、選択されたオブジェクトを追跡します。これは、ユーザーが一度に複数の製品を選択する場合に特に役立ちます。 JavaScript を使用すると、選択した項目 ID を保存することで、ページの再読み込み後に選択内容をグリッドに再適用できます。この技術は、ユーザーのアクションが失われないようにすることで、ユーザー エクスペリエンス全体を大幅に向上させます。

AJAX 更新を使用することで、より複雑なグリッド、特に大規模なデータセットを管理するグリッドの速度の向上が保証されます。検索パラメータと選択したオブジェクトをそのまま維持したまま部分的な変更を行うことができるため、グリッド全体を再ロードする必要がなくなります。を組み合わせることで、より流動的でインタラクティブなグリッド エクスペリエンスが実現します。 アヤックス サーバー側ロジックを使用すると、ワークフローを妨げることなく、Web サイトがユーザーのアクティビティに動的に適応できるようになります。

ASP.NET グリッドでの検索と選択の保持に関するよくある質問とその回答

  1. ポストバック後に検索条件を維持するにはどうすればよいですか?
  2. 検索入力を次のポストバックに保存することで、検索条件をポストバック間で保存できます。 sessionStorage または ViewState
  3. Web サイトが更新されたときに、グリッド内の選択内容を維持できますか?
  4. はい、JavaScript を使用して、ページのリロード時に選択したアイテム ID を再適用し、それらを保存します。 localStorage または sessionStorage
  5. グリッド項目を選択するときに、ページのリロードを完全に停止する方法はありますか?
  6. 部分的なページ更新の場合は、次を使用します。 AJAX グリッドの完全な再読み込みを回避し、検索パラメータを保持します。
  7. ポストバック間で並べ替えとページングの選択を保持できますか?
  8. はい、雇用します DataTables;あるいは、利用する sessionStorage または ViewState 状態を維持する特性。
  9. グリッドでの項目選択と検索の永続化を一緒に行いますか?
  10. はい、JavaScript を使用して、検索条件と選択した項目を保存した後、ページをリロードするときにそれらを再適用できます。 sessionStorage

ASP.NET グリッドでの検索と選択に関する最終的な考え

ASP.NET グリッドでのユーザー エクスペリエンスを向上するには、項目を選択した後に検索条件を維持する必要があります。クライアント側およびサーバー側の戦略により、ポストバック中にユーザーが検索入力を維持することが保証されます。これにより、よりシームレスでユーザーフレンドリーなインターフェイスが実現します。

検索入力と選択した項目を保存します。 ビューステート 保持または JavaScript 保管が目的です。これにより煩わしさが最小限に抑えられるはずです。これらのテクニックを使用すると、グリッドベースのアプリの動的でユーザーフレンドリーな性質を維持しながら、全体的な使いやすさを向上させることができます。

ASP.NET グリッド検索永続性の参考資料とソース資料
  1. 詳細情報 ASP.NETビューステート ポストバック間でデータをどのように保持するかについては、次の情報源から得られました。 Microsoft の公式ドキュメント
  2. データテーブル JavaScript 検索機能で使用される統合は、から参照されました。 DataTables 公式ドキュメント
  3. の使用 セッションストレージ クライアント側データを保存するための JavaScript について、例を使用して検討しました。 MDN ウェブ ドキュメント
  4. 実装に関するガイダンス アヤックス グリッド状態を維持しながらページのリロードを防ぐための情報は、 W3Schools AJAX チュートリアル