GridViewの組み込みのEntity Frameworkによる並べ替えを使用する場合、外部キー値を表示できます。たとえば...GridViewのEntity Frameworkでの外部キー値によるソート?
<asp:boundfield HeaderText="Category" DataField="Category.Name" SortExpression="Category.Name" />
...ただし、ヘッダーをクリックしてグリッド内のアイテムを並べ替えると、リストリストをカテゴリ別に並べ替えることはできますか?
私は、文字列 "Category.Name" を持っているので、私はこれを行うことはできません。
.OrderBy(e => e.Category.Name)
だから私はしない... ...
private static object GetPropertyValue(object obj, string propertyName)
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(propertyName);
return propertyInfo.GetValue(obj, null);
}
// list is List<Widget>
// with a breakpoint here, ((Widget)list[i]).Companies.Name exists in all Widgets
list.OrderBy(e => GetPropertyValue(e, "Category.Name"))
をリフレクションを試してみました作業。スローされた例外はありませんが、Category.Nameでソートされません。
アイデア?
これは答えとしてマークする必要があります。nice post –
これはどうやって見つかりましたか?これは*どこに*書かれていますか?私はこの答えがほぼ4歳であることを認識していますが、これがうまくいかないと思っていたので、誰かがこれを見せてくれればいいです。 – Vivelin