Come scorrere solo il lato destro di una tabella, visualizzazione elenco o griglia dati?
Domanda
Diciamo che ho strutture dati che sono qualcosa del genere:
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
E voglio una tabella che assomigli a questa:
| Course Name | Course ID | [Attendence(0).CourseDate] | [Attendence(1).CourseDate]| ... | Intro to CS | CS-1000 | 23 | 24 | ... | Data Struct | CS-2103 | 15 | 14 | ...
Come potrei, in generale, fare in modo che tutto a destra dell'ID corso sia scorrevole orizzontalmente, mantenendo in posizione il nome del corso e l'ID corso?Idealmente utilizzando una tabella, una visualizzazione elenco o una griglia dati all'interno di ASP.NET e/o WinForms.
Soluzione
È possibile ottenere questa funzionalità dal controllo System.Windows.Forms.DataGridView.Quando crei le colonne puoi impostarle in modo che siano congelato che quindi farà scorrere solo quelle colonne a destra delle colonne bloccate.
Altri suggerimenti
In puro .Net non so nulla.Ci sono Soluzioni CSS per un'intestazione fissa.Ma una colonna di sinistra fissa, secondo la mia esperienza, richiede alcune modifiche a Javascript.
Mi ci è voluto un minuto per trovare il vecchio esempio.Da allora l'host è andato giù. http://web.archive.org/web/20080215013647/http://www.litotes.demon.co.uk/example_scripts/tableScroll.html
Questo è il meccanismo che ho usato per farlo funzionare:Prendi un tavolo normale e separalo in altri 4 tavoli.Ottieni la corrispondenza delle larghezze delle colonne e delle altezze delle righe utilizzando i vincoli aziendali, quindi collega l'evento onscroll per scorrere le altre tabelle.
Ecco un esempio che utilizza solo HTML e CSS per ottenere ciò che penso tu stia cercando:
http://www.shrutigupta.com/index.php/2005/12/12/how-to-create-table-with-first-column-frozen/