2008-09-18 8 views
2

Скажем, у меня есть структуры данных that're что-то вроде этого:Как прокручивать только правую сторону таблицы, 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.

ответ

1

Вы можете получить эту функцию от управления System.Windows.Forms.DataGridView. Когда вы создаете столбцы, вы можете установить их как frozen, которые будут прокручивать только те столбцы справа от замороженных столбцов.

1

В чистом виде .Net Я ничего не знаю. Для фиксированного заголовка есть CSS Solutions. Но фиксированный левый столбец, по моему опыту, требует некоторого филирования javascript.

Пришло время найти старый пример. С тех пор хозяин спустился. http://web.archive.org/web/20080215013647/http://www.litotes.demon.co.uk/example_scripts/tableScroll.html

Это механизм, который я использовал, чтобы заставить его работать: возьмите обычный стол и разделите его на 4 другие таблицы. Получите ширину столбцов и высоту столбцов, чтобы они соответствовали бизнес-ограничениям, а затем связали событие onscroll, чтобы прокрутить другие таблицы.

0

Вот пример, используя только HTML и CSS, чтобы добиться того, что я думаю, что вы ищете:

http://www.shrutigupta.com/index.php/2005/12/12/how-to-create-table-with-first-column-frozen/

+0

Он достигает целевого эффекта. Полагаю, я должен был попросить более общий ответ. Похоже, в этом случае вам нужно либо использовать статический CSS для статических данных, либо генерировать его «на лету». Меня действительно беспокоит общий случай, даже если у меня есть конкретный случай прямо сейчас. – 2008-09-18 20:54:38

+0

Сайт, на который вы ссылаетесь, помечен как сайт контейнера вредоносных программ Google Chrome – 2008-10-08 12:53:18