こんにちは、私は ASP.NET MVC 3 アプリケーションに取り組んでいます。
ビューがあります
var grid = new WebGrid(rowsPerPage: 10, ajaxUpdateContainerId: "GridDiv",canPage: true,canSort: true);
grid.Bind(source: Model);
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(htmlAttributes: new { id="grid" },
columns: grid.Columns(
grid.Column("Name"),
grid.Column("Age"),
grid.Column("Sex")
)
コントローラーには、データを並べ替えるためのカスタマイズされた並べ替えアルゴリズムがあります。カスタマイズされた昇順ソートとカスタマイズされた降順ソートの両方があります。
ユーザーが列ヘッダーをクリックして、ビルドインではなく、カスタマイズされた並べ替えアルゴリズムに従って行を並べ替えたい。
そのために、次のことを試しました(「sortdir」を取得し、それに応じて処理します)
コントローラ
public ActionResult Persons(string sortdir)
{
PersonsListModel = GetAllPersonsList();
if(sortdir=="ASC")
return View(MyAscendingCustomSortAlgorithm(PersonsListModel ));
else
return View(MyDescendingCustomSortAlgorithm(PersonsListModel ));
}
MyAscendingCustomSortAlgorithm
MyDescendingCustomSortAlgorithm
カスタムアルゴリズムでソートされたリストを返す関数です。
ページがロードされるとリストは正しくソートされますが、ヘッダーをクリックするとソートがめちゃくちゃになります。デバッグしたところ、すべてが正しく機能していました。
私の質問は、どうすればそれを機能させ、正しいページングを維持できるかです
私も設定しようとしcanSort: false
ましたが、ヘッダーをクリックできなくなりました。
助けてくれてありがとう