Il ya quelques années, j'ai décidé de créer mon propre DataGrid car je n'aimais pas le standard fourni par Microsoft. C'est une fonction très simple qui prend un DataTable comme un paramètre d'entrée et qui renvoie une chaîne (le code html pour afficher une table sur une page Web).grille personnalisée asp.net vs GridView/ListView
C'est très flexible (il y a des paramètres optionnels pour faire la pagination, le tri et le formatage de chaque colonne comme je veux) et rapide (seuls les enregistrements utilisés sont récupérés de la base de données). La fonction elle-même est très courte (environ 20 lignes de code). Je l'utilise depuis au moins 4 ans maintenant.
En supposant que vous avez un PlaceHolder sur votre page Web, voici comment vous appelez la fonction personnalisée:
MyPlaceHolder.Controls.Add(new LiteralControl(CreateCustomGrid(MyDataTable)))
CreateCustomGrid (MyDataTable))) retourne quelque chose comme ça (si MyDataTable dispose de 2 colonnes et 2 lignes):
<table class="MyClass" rules="all">
<tr>
<th>Column1</th>
<th>Column2</th>
</tr>
<tr>
<td align="center">Value1</td>
<td align="center">Value2</td>
</tr>
<tr>
<td align="center">Value3</td>
<td align="center"><a href=’MyLink’>Value4</a></td>
</tr>
</table>
en interne, la fonction sait comment formater chaque colonne (cette fonction est uniquement utilisée sur un site Web), mais il est également possible de le changer pour chaque colonne individuelle en utilisant des paramètres facultatifs. Idem pour la pagination et le tri. Dans l'ensemble, il est très flexible et très facile à utiliser.
Maintenant, les choses ont changé et le DataGrid a été remplacé par GridView et/ou ListView. Je les ai regardés mais je ne vois rien qu'ils fassent que ma fonction ne soit pas si je serais tenté de continuer à utiliser ma fonction, mais je pourrais négliger quelque chose. Dans le même temps, il semble un peu étrange de continuer à utiliser une fonction personnalisée pour générer une table html. Quelle est votre opinion à ce sujet?
+1 Mes pensées exactement. Bien déclaré! –