0

私の状況は非常に一般的です。Web 管理にマスター詳細環境があります。ダイアログから約 3500 のレコードから 1 つのレコードを選択できるようにする必要があります。

これが、ページネーションが必要な理由です。私の実装では、JQuery ダイアログと MVC 3 部分ビューを使用しています。下線ページを更新せずに、既に開いている JQuery ダイアログの内容を更新する可能性が必要です。

任意のページの後、JQuery ダイアログの部分ビューをクリックします。

 <dt>
    <a href="/News/SelectArtist?PageId=2">B</a>
 </dt>
 <dt>
    <a href="/News/SelectArtist?PageId=3">C</a>
 </dt>

マイページが更新され、JQuery ダイアログが消えました。

この状況の解決策はありますか?

4

1 に答える 1

0

News/SelectArtist が部分ビューを返すコントローラー アクションであるかどうかは明確ではありませんが、ここではどのようにこれを行うかを説明します。

このアクションを ajax 経由で呼び出して、jQuery ダイアログの内容を更新できます。

jQuery ダイアログに (部分ビューから) コンテンツ全体をラップする div があるとします。

<div id="dialog-content">
...
<!-- this is the content of your partial view -->
</div>

各ページ リンクに css クラスを追加し、data-pageid を追加して、次のように SelectArtist アクションを呼び出します。

<dt>
<a class="page-trigger" href="#" data-pageid="2">B</a>
</dt>

スクリプト ブロックから:

$(function() {
  $('.page-trigger').click(function() {
    var pageId = $(this).data('pageid');
    $.ajax('/News/SelectArtist?PageId=' + pageId, { }, function(data) {
      $('#dialog-content').html(data);
    });
  });
});

SelectArtist アクションに[HttpPost]属性があることを確認してください。ダイアログのコンテンツは、ページ リクエストなしで更新されます。

[HttpPost]
public ActionResult SelectArtist()
{
  int pageId = int.Parse(Request.QueryString["pageId']);
  ...
  return PartialView(viewModel);
}
于 2012-11-15T21:29:31.577 に答える