2009-07-06 8 views
0

Si j'ai un ASP.Net RadioButtonList dans un TemplateField dans un GridView, qui est lié à un contrôle de données, je peux obtenir databinding à la page de chargement comme ceci:Liste RadioButton dans GridView - Liaison de données bidirectionnelle possible?

<asp:RadioButtonList SelectedValue='<%#Eval("RequirementOption")%>'> 

Ainsi, lorsque le gridview rend, l'utilisateur peut sélectionner une option pour chaque ligne de la grille. Ce que je me demande, c'est quand on appuie sur le bouton de sauvegarde et qu'une publication se produit, il y a un moyen de repasser automatiquement ces valeurs sélectionnées dans le contrôle de données pour les sauvegarder, ou dois-je faire une boucle manuelle à travers toutes les lignes de la grille et exract la valeur choisie, comme ceci:

For iRow As Integer = 0 To Me.myGrid.Rows.Count - 1 
    Dim selectedValue As String = CType(Me.myGrid.Rows(iRow).FindControl("RequirementOption"), RadioButtonList).SelectedValue 
    '...Load up the appropriate class and save the selected value 
    Next 

peut-il être fait automatiquement via la liaison de données?

REMARQUE: Je parle de la mise à jour tous les les lignes, puis l'accès à toutes les opérations de publication, pas une ligne à la fois via l'édition en ligne.

Répondre

-1

Oui, la valeur selectedValue sera disponible tant que vous spécifiez Bind au lieu de Eval.

(en supposant que vous mettez à jour un enregistrement de la manière habituelle)

+0

Où est-il disponible, comment y accéder? Le gridView.DataSource est Nothing. – tbone

+0

Pour autant que je sache, cette réponse est incorrecte. – tbone

+0

Avez-vous ajouté ce commentaire à propos de la mise à jour en même temps après? Cela change définitivement les choses. Sinon, un EditItemTemplate aurait fait l'affaire. Je ne sais pas pourquoi vous avez rejeté ma réponse, parce que votre question n'était pas complète. – ScottE

Questions connexes