2008-09-18 6 views
2

Disons que j'ai des structures de données that're quelque chose comme ceci:Comment faire défiler uniquement le côté droit d'une table, d'une liste ou d'une grille de données?

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 

Et je veux une table qui ressemble à quelque chose comme ceci:

 
| Course Name | Course ID | [Attendence(0).CourseDate] | [Attendence(1).CourseDate]| ... 
| Intro to CS | CS-1000 |    23    |    24   | ... 
| Data Struct | CS-2103 |    15    |    14   | ... 

Comment puis-je, dans le cas général, obtenir tout à droite de l'ID du cours doit être déroulable horizontalement, tout en maintenant le nom du cours et l'ID du cours en place? Idéalement, utilisez une table, listview ou datagrid dans ASP.NET et/ou WinForms.

Répondre

1

Vous pouvez obtenir cette fonctionnalité du contrôle de System.Windows.Forms.DataGridView. Lorsque vous créez des colonnes, vous pouvez les définir comme frozen, ce qui ne fera que faire défiler ces colonnes vers la droite de la colonne gelée.

+0

Tous les équivalents ASP.NET? Je me demandais juste, car il semble que ce serait la réponse dans WinForms. –

+0

Je ne suis pas sûr de tous les contrôles ASP.Net qui le font, mais je ne connais pas très bien ASP.Net, donc très bien peut-être quelque chose à faire. – akmad

1

En pur .Net je ne sais rien. Il y a CSS Solutions pour un en-tête fixe. Mais une colonne de gauche fixe, d'après mon expérience, nécessite un peu de javascript.

Il m'a fallu une minute pour trouver l'ancien exemple. L'hôte est depuis tombé. http://web.archive.org/web/20080215013647/http://www.litotes.demon.co.uk/example_scripts/tableScroll.html

Voici le mécanisme que j'ai utilisé pour le faire fonctionner: Prenez une table normale et séparez-la dans 4 autres tables. Obtenez les largeurs de colonnes et les hauteurs de lignes pour faire correspondre les contraintes métier, puis liez l'événement onscroll pour faire défiler les autres tables.

0

Voici un exemple en utilisant seulement HTML et CSS pour obtenir ce que je pense que vous cherchez:

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

+0

L'effet souhaité est atteint. Je suppose que j'aurais dû demander une réponse plus générique. Il semble que, dans ce cas, vous devez soit utiliser du CSS statique pour des données statiques, soit le générer à la volée. Je suis vraiment préoccupé par le cas général, même si je n'ai qu'un cas précis en ce moment. –

+0

Le site que vous liez est marqué comme site de conteneur de malwares par Google Chrome –

+0

Firefox le signale également. Et apparemment le PHP semble cassé (ouvert dans Lynx) –

Questions connexes