Cuando se utiliza el control DataGrid para agregar botones de opción, si agrega el control del servidor RadioButton directamente a la plantilla, debido al mecanismo de .Net, estos RadioButtons no pueden aparecer en el mismo grupo en el cliente. En este momento podemos utilizar la etiqueta Radio para lograrlo.
El siguiente es el código de la página HMTL
<form id="Form1" método="post" runat="server">
<Columnas>
<Plantilla de artículo>
<tipo de entrada="radio" nombre="rdo" <%# GetChecked(DataBinder.Eval(Contenedor, "DataItem")) %> valor='<%# DataBinder.Eval(Contenedor, "DataItem") %>'>
<asp:Label runat="servidor" Text='<%# DataBinder.Eval(Contenedor, "DataItem") %>' ID="Label1">
</asp:Etiqueta>
</Plantilla de elemento>
</asp:ColumnaPlantilla>
</Columnas>
</asp:datagrid><br>
<asp:Button id="btnOk" runat="server" Text="OK"></asp:Button>
El siguiente es el código de enlace de datos en Page_Load
Dim arr As New ArrayList
arr.Add("Noticias completas")
arr.Add("programa de variedades")
arr.Add("película")
arr.Add("Educación")
arr.Add("Drama")
arr.Add("Militar")
arr.Add("Deportes")
DataGrid1.DataSource = arreglo
DataGrid1.DataBind()
El siguiente es el código para obtener el elemento seleccionado en btnOk_Click
Response.Write(Request.Form("rdo"))
La siguiente es la función para establecer qué Radio en el elemento vinculante está seleccionado
Función pública GetChecked(ByVal str como cadena) como cadena
Si str = Request.Form("rdo") Entonces
Volver "comprobado"
Demás
Devolver ""
Terminar si
Función final