¿Cómo desplazarse solo por el lado derecho de una tabla, vista de lista o cuadrícula de datos?
Pregunta
Digamos que tengo estructuras de datos similares a esta:
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
Y quiero una tabla que se vea así:
| Course Name | Course ID | [Attendence(0).CourseDate] | [Attendence(1).CourseDate]| ... | Intro to CS | CS-1000 | 23 | 24 | ... | Data Struct | CS-2103 | 15 | 14 | ...
¿Cómo haría, en el caso general, para que todo lo que está a la derecha del ID del curso se pueda desplazar horizontalmente, mientras mantengo el Nombre del curso y el ID del curso en su lugar?Lo ideal sería usar una tabla, vista de lista o cuadrícula de datos dentro de ASP.NET y/o WinForms.
Solución
Puede obtener esta funcionalidad desde el control System.Windows.Forms.DataGridView.Cuando crea columnas, puede configurarlas para que sean congelado que luego solo desplazará esas columnas a la derecha de las columnas congeladas.
Otros consejos
En .Net puro no sé nada.Hay Soluciones CSS para un encabezado fijo.Pero, en mi experiencia, una columna izquierda fija requiere algo de financiación de JavaScript.
Me tomó un minuto encontrar el antiguo ejemplo.Desde entonces, el host ha caído. http://web.archive.org/web/20080215013647/http://www.litotes.demon.co.uk/example_scripts/tableScroll.html
Este es el mecanismo que utilicé para que funcionara:Tome una mesa normal y sepárela en otras 4 mesas.Obtenga que los anchos de las columnas y los altos de las filas coincidan utilizando restricciones comerciales y luego vincule el evento de desplazamiento para desplazarse por las otras tablas.
Aquí hay un ejemplo que usa solo HTML y CSS para lograr lo que creo que estás buscando:
http://www.shrutigupta.com/index.php/2005/12/12/how-to-create-table-with-first-column-frozen/