2012-06-11 3 views
0

У меня есть DataTable (_dataTableAvailable), который имеет на следующие значения:C# (2.0) фильтрации DataView, как обрабатывать специальные символы

Name  Id Selected 
- Global 2100 False 
ASpecial 1200 False 
BSpecial 2300 False 
GSpecial 400 False 

После того, как я использовал код folowwing:

DataView dataViewAvailable = new DataView(_dataTableAvailable, "selected=False", "name", DataViewRowState.CurrentRows); 

порядок сортировки изменен !!

Name  Id Selected 
ASpecial 1200 False 
BSpecial 2300 False 
- Global 2100 False 
GSpecial 400 False 

Что я хочу, так это то, что я получаю тот же порядок. Как я могу это сделать?

Я использую визуальную студию 2005 (C# 2.0).

+0

Я не знаю, что вы имеете в виду под этим. – Remco

ответ

1

Как кажется, ваш datatable упорядочен по идентификатору, поэтому вы можете отсортировать данные по идентификатору и получить те же результаты! для примера кода см. По следующей ссылке: DataView.Sort - more than just asc/desc (need custom sort)

+0

То, что id, где в этом порядке - всего лишь совпадение. Он мог бы также был: Имя Id Выбранный - Global 2100 Ложные ASpecial 200 Ложные BSpecial 300 Ложные GSpecial 400 Ложные – Remco

+0

I justed установлен, _dataTableAvailable также сортируются по "имени". – Remco

+0

Итак! сортировать данные по имени! – Karamafrooz

0

Я нашел его. Это ошибка, и единственным решением является добавление дополнительного столбца и вызов этого типа «NameSort». Здесь поставлен порядок. Таким образом, вы получите:

Name  Id Selected NameSort 
- Global 2100 False 0 
ASpecial 1200 False 1 
BSpecial 2300 False 2 
GSpecial 400 False 3 

изменить код, чтобы и она отлично работает:

DataView dataViewAvailable = new DataView(_dataTableAvailable, "selected=False", "NameSort", DataViewRowState.CurrentRows); 

 Смежные вопросы

  • Нет связанных вопросов^_^