Улучшена версия Роджера.
Проблема с GetDynamicSortProperty заключается в том, что они получают только имена свойств, но что произойдет, если в GridView мы используем NavigationProperties? он отправит исключение, так как находит NULL.
Пример:
«Employee.Company.Name;» сбой ... поскольку разрешает только «Name» в качестве параметра получить его значение.
Вот улучшенная версия, которая позволяет нам сортировать по свойствам навигации.
public object GetDynamicSortProperty(object item, string propName)
{
try
{
string[] prop = propName.Split('.');
//Use reflection to get order type
int i = 0;
while (i < prop.Count())
{
item = item.GetType().GetProperty(prop[i]).GetValue(item, null);
i++;
}
return item;
}
catch (Exception ex)
{
throw ex;
}
}
После некоторого обширного тестирования я сделал следующие выводы:
Надеюсь, это поможет кому-то еще узнать, кто ищет информацию о файлах.
Если вы используете двойные кавычки ("
) вокруг пути к файлу (вам, вероятно, потребуется URL-кодировать их как %22
), окна будут в порядке с полным путем:
<a href="file:///%22C:\Documents and Settings\user123\My Documents\testing\someFile.txt%22">link</a>