Comment créer une table à trois colonnes dans le répéteur ASP.Net
Je voudrais être en mesure d'utiliser l'ASP.Net contrôle Repeater pour créer un Tableau HTML qui a trois colonnes et autant de lignes que de necc.
Par exemple, si les Données ont été pour ressembler à ce
"Phil Hughes"
"Andy Petite"
"CC Sabathia"
"AJ Burnett"
"Javier Vazquez"
Je voudrais la table résultante d'être comme
<table>
<tr>
<td>Phil Hughes</td>
<td>Andy Petite</td>
<td>CC Sabathia</td>
</tr>
<tr>
<td>AJ Burnett</td>
<td>Javier Vazquez</td>
<td></td>
</tr>
</table>
Comment puis-je faire cela?
source d'informationauteur etoisarobot
Vous devez vous connecter pour publier un commentaire.
Il est préférable d'utiliser un contrôle DataList intstead car il a des propriétés intéressantes RepeatColumns et RepeatDirection.
Répéteur n'est pas l'idéal de contrôle pour le faire. Si vous êtes en utilisant .NET 3.5, vous devez utiliser ListView à la place. Voici un exemple qui fait ce que vous demandez.
Beaucoup plus simple que tous les exemples cités ici; Vous n'avez pas besoin d'utiliser un affichage de liste ou de faire quoi que ce soit dans le code derrière.
Je suis en supposant que vous avez tous ces nom en 5 lignes de données et vous souhaitez étaler sur 3 colonnes dans un répéteur et ne pas avoir 2 lignes de données avec 3 champs qui serait simple. Basé sur mon hypothèse de vos données est quelque chose comme:
DataTable
(ou quel que soit votre source est):Vous pouvez le faire à l'aide d'un
Repeater
et unLiteral
avec un peu de logique, sur leOnDataBinding
cas de laLiteral
.D'abord définir votre
Repeater
:Ensuite, vous aurez besoin d'une constante pour le total des colonnes que vous voulez et deux variables globales pour suivre l'opération de liaison. Définir comme:
Alors vous aurez besoin pour mettre en œuvre les OnDataBinding à faire tout le travail personnalisé:
Alors assurez-vous que lorsque vous liez votre
Repeater
vous enregistrez le total count:La sortie produite serait:
Vous pourriez probablement améliorer la
DataBinding
code, mais j'ai juste secoué à donner le principe de base de la façon d'atteindre votre objectif. Si leDataBinding
besoin de faire beaucoup de string concat opérations, vous devriez probablement passer à l'aide d'unStringBuilder
et alors seulement affecter laLiteral
dans la dernière opération.Ou tout simplement utiliser un div dans le répéteur et puis résoudre la hauteur/largeur de problèmes avec les CSS.