Изменить порядок или индекс столбцов таблицы данных
Это то, что я не могу поверить, что я не смог понять - пожалуйста, скажите мне, что я упускаю что-то простое...
У меня есть сетка данных, я заполняю ее с помощью LINQ, а также пользовательский класс для добавления данных к нему.
После этого мне нужны данные в определенном порядке - похоже, они меня игнорируют.
Как изменить свойства столбцов, такие как индекс и т. Д.??
вот код LINQ, который я использую:
заранее спасибо...
Dim query = From m In db.details _
Where m.InboundDate >= CType(MonthCalendar1.SelectionStart, DateTime) _
And m.InboundDate <= CType(MonthCalendar1.SelectionEnd, DateTime).AddHours(23).AddMinutes(59) _
And m.ClientNo = 1 _
Join md In db.Manifests On md.ManifestID Equals m.MainID _
Select New GridData With {.manifestID = m.MainID, .InboundDate = m.InboundDate, .Zip = m.Zip, .LadingPkgQty = md.LadingPkgQty, .Weight = m.Weight, .Zone = m.Zone, .Fuel = 23, .LineHaul = Nothing, .Freight = Nothing, .BilledAmount = Nothing, .PackageRate = Nothing, .LTL = Nothing}
3 ответа
Решаемая
Я не могу поверить, сколько вещей мне пришлось пройти, чтобы найти это!
Кажется, теперь это так очевидно (как и большая часть.net после факта!)
Datagrid.Columns("Zone").DisplayIndex = 0
или же
Datagrid.columns(1).DisplayIndex=0
То, что вы видите, является эффектом того, как VB генерировал анонимные типы в Visual Studio 2008 RTM. Компилятор сортирует свойства по алфавиту. Следовательно, независимо от того, какой порядок вы указали, если ваши данные связывают запрос, столбцы будут отображаться в алфавитном порядке.
В Visual Studio 2008 с пакетом обновления 1 (SP1) компилятор VB внес изменения, чтобы устранить это поведение. Анонимные типы теперь будут генерировать элементы анонимного типа так же, как вы указываете их в коде. Если вы обновитесь до VS2008 SP1, вы должны увидеть изменение в этом поведении.
Подробная статья на эту тему
Я не уверен, что конкретно происходит, но что-то нужно учитывать...
В какой момент вы изменяете столбцы? Если слишком поздно, возможно, потребуется отскок к сетке, что приведет к его перерисовке. Обычно, когда я что-то меняю и не вижу эффекта на экране, это связано с порядком привязки.