私はデータベースから(LINQからSQLに)引っ張られる一連のオブジェクトのHtml.Gridを使用しています。ここにグリッドコードがあります(私は何かを考案したデータに変更しました)。このページはPeopleに強く入力されています。一般的にリストを並べ替える方法
<%=Html.Grid<People>(Model)
// Display chose solution information.
.Columns(column =>
{
column.For(person => person.Name);
column.For(person => person.Address.City);
}
)
%>
データベース内では、私はPeopleテーブルと外部テーブルによってリンクされたAddressテーブルを持っています。 (これはやはり問題を記述しようとしたものです)
私は、ユーザが一般的に列を並べ替えることを許可します。以前の開発者が、私はそれをソートするperson.Name欄をクリックした場合、私は、ソートしていたオブジェクトが人(あるときに...
//
// GET: Results/Grid
public ActionResult Grid(int id, GridSortOptions sort)
{
if (sort == null)
{
sort = new GridSortOptions();
}
Solution solution = repository.GetSolution(id);
List<People> people = solution.People.ToList();
if (!string.IsNullOrEmpty(sort.Column))
{
people = solution.People.ToList().OrderBy(sort.Column, sort.Direction).ToList();
}
return PartialView("Grid", people);
}
のようにこれは素晴らしい作品、コントローラ内のソートにハードコーディングされていました昇順または降順)。ただし、住所の列を並べ替える場合、市には市が含まれていないため例外が発生します。
私の質問は...どのようなタイプが先であるかを知らずにこの種のことを一般的に行う方法はありますか?ありがとう。
あなたのコードのいくつかはあまり明確ではない 'ViewData [" sort "] = sort;'これは逆であると思われますか?子オブジェクトのレベルは1つだけですか複数ですか? – msarchet
@msarchet - 私はこのコードを以前の開発者から継承しています。私はその声明が必要だとは思わない。それを反映するための更新。ありがとう。 – JasCav