Parcourir les lignes dans un tableau html avec C#
J'ai un tableau html dans une page aspx (C#) qui a des colonnes comme
1.CheckBox 2.Text 3.Text 4.TextBox
Je veux parcourir le tableau d'une ligne et de processus (exécuter une procédure stockée en fonction de colonne2) selon que la case est cochée ou non. Comment vais-je être capable de le faire?
Vous devez vous connecter pour publier un commentaire.
En supposant que vous êtes en utilisant le Tableau de contrôle du serveur, alors c'est juste:
Si vous utilisez un tableau html (avec runat="server") ainsi que des contrôles de formulaire html alors il suffit de changer TableRow à HtmlTableRow, Case à HtmlInputCheckBox, et de la zone de texte à HtmlInputText. L'ensemble de ces contrôles dans le Système.Web.L'INTERFACE utilisateur.HtmlControls espace de noms.
J'ai déjà eu quelques VB.NET code à portée de main qui peut faire cela. Il a juste pris un peu de peaufinage. Il pourrait être porté sur C# facilement.
C'est assez flexible pour trouver les cases à l'intérieur de n'importe quoi (et pas seulement une table). Cependant, dans votre scénario, vous pouvez utiliser quelque chose comme noblethrasher de réponse.
Ma réponse est une méthode récursive de ramper à travers les arbres, en trouvant chaque seule case. Mais noblethrasher est simple, simple, et plus efficace de l'algorithme si vous connaissez la colonne à chercher la case et vous savez qu'il n'est pas enterré à l'intérieur de conteneurs supplémentaires.
Découvrez la HtmlTable classe et de ses Lignes de propriété.
http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable(SV.71).aspx
Je suis sûr que peut vous aider sur le chemin!
Si vous ajoutez un runat="server" attribut à la balise table en html, vous devriez être en mesure de voir le tableau comme une collection d'objets de Contrôle et vous devriez être en mesure de parcourir.
Ce qui semble être la pire façon possible pour atteindre dynamique de données, cependant. Peut-être qu'avec un peu de fond nous pourrions vous aider à trouver une meilleure façon...