Как прокручивать только правую часть таблицы, listview или datagrid?
Вопрос
Допустим, у меня есть структуры данных, которые выглядят примерно так:
Public Class AttendenceRecord
Public CourseDate As Date
Public StudentsInAttendence As Integer
End Class
Public Class Course
Public Name As String
Public CourseID As String
Public Attendance As List(Of AttendenceRecord)
End Class
И мне нужна таблица, которая выглядит примерно так:
| Course Name | Course ID | [Attendence(0).CourseDate] | [Attendence(1).CourseDate]| ... | Intro to CS | CS-1000 | 23 | 24 | ... | Data Struct | CS-2103 | 15 | 14 | ...
Как бы мне, в общем случае, сделать так, чтобы все, что находится справа от идентификатора курса, можно было прокручивать по горизонтали, сохраняя при этом название курса и идентификатор курса на месте?В идеале использовать таблицу, listview или datagrid внутри ASP.NET и / или WinForms.
Решение
Вы можете получить эту функциональность из Системы.Windows.Формы.Элемент управления DataGridView.Когда вы создаете столбцы, вы можете установить для них значение замороженный который затем будет прокручивать только эти столбцы справа от замороженных столбцов.
Другие советы
В чистом виде .В сети я ни о чем не знаю.Есть такие CSS-решения для фиксированного заголовка.Но фиксированный левый столбец, по моему опыту, требует некоторой доработки javascript.
Мне потребовалась минута, чтобы найти старый пример.С тех пор ведущий вышел из строя. http://web.archive.org/web/20080215013647/http://www.litotes.demon.co.uk/example_scripts/tableScroll.html
Это механизм, который я использовал, чтобы заставить его работать:Возьмите обычную таблицу и разделите ее на 4 другие таблицы.Приведите ширину столбцов и высоту строк в соответствие с использованием бизнес-ограничений, а затем свяжите событие onscroll для прокрутки других таблиц.
Вот пример использования только HTML и CSS для достижения того, что, я думаю, вы ищете:
http://www.shrutigupta.com/index.php/2005/12/12/how-to-create-table-with-first-column-frozen/