Lorsque vous utilisez le contrôle DataGrid pour ajouter des boutons radio, si vous ajoutez le contrôle serveur RadioButton directement au modèle, en raison du mécanisme de .Net, ces RadioButtons ne peuvent pas apparaître dans le même groupe sur le client. À ce stade, nous pouvons utiliser la balise Radio pour y parvenir.
Voici le code de la page HMTL
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Colonnes>
<asp:TemplateColumn>
<Modèle d'élément>
<input type="radio" name="rdo" <%# GetChecked(DataBinder.Eval(Container, "DataItem")) %> value='<%# DataBinder.Eval(Container, "DataItem") %>'>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem") %>' ID="Label1">
</asp:Étiquette>
</Modèle d'élément>
</asp:TemplateColumn>
</Colonnes>
</asp:datagrid><br>
<asp:Button id="btnOk" runat="server" Text="OK"></asp:Button>
Ce qui suit est le code de liaison de données dans Page_Load
Dim arr As New ArrayList
arr.Add("Actualités complètes")
arr.Add("émission de variétés")
arr.Add("film")
arr.Add("Éducation")
arr.Add("Drame")
arr.Add("Militaire")
arr.Add("Sports")
DataGrid1.DataSource = arr
DataGrid1.DataBind()
Ce qui suit est le code pour obtenir l'élément sélectionné dans btnOk_Click
Response.Write(Request.Form("rdo"))
Ce qui suit est la fonction pour définir quelle radio dans l'élément de liaison est sélectionnée
Fonction publique GetChecked(ByVal str comme chaîne) comme chaîne
Si str = Request.Form("rdo") Alors
Retour "vérifié"
Autre
Retour ""
Fin si
Fonction de fin