ASP.NET Tutorial/ASP.net Controls/RadioButtonList
A combination of bullet-list and radio-button list controls
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Bullets & Radios</title>
</head> <body>
<form id="form1" runat="server"> <asp:RadioButtonList ID="BulletOptions" runat="server" AutoPostBack="True" OnSelectedIndexChanged="BulletOptions_SelectedIndexChanged" RepeatColumns="3" RepeatDirection="Horizontal" />
<asp:BulletedList ID="BulletedList1" runat="server" BulletImageUrl="/core35/images/bullet.gif" /> </form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; public partial class Data : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { FillOptions(); FillCountries(); } } protected void FillOptions() { BulletOptions.DataSource = Enum.GetValues(typeof(BulletStyle)); BulletOptions.SelectedIndex = 0; BulletOptions.DataBind(); } protected void FillCountries() { string connString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; string cmdText = "SELECT DISTINCT country FROM customers"; DataTable data = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString); adapter.Fill(data); BulletedList1.DataSource = data; BulletedList1.DataTextField = "country"; BulletedList1.DataBind(); } protected void BulletOptions_SelectedIndexChanged(object sender, EventArgs e) { BulletStyle style = (BulletStyle) Enum.Parse(typeof(BulletStyle), BulletOptions.SelectedValue); BulletedList1.BulletStyle = style; }
}</source>
Data binding with the RadioButtonList Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e) { lblProduct.Text = rblProducts.SelectedItem.Text; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show RadioButtonList</title>
</head> <body>
<form id="form1" runat="server">
<asp:RadioButtonList id="rblProducts" DataSourceID="srcProducts" DataTextField="Title" DataValueField="Id" RepeatColumns="3" Runat="server" /> <asp:Button id="btnSubmit" Text="Submit" Runat="server" OnClick="btnSubmit_Click" />
<asp:Label id="lblProduct" Runat="server" /> <asp:SqlDataSource id="srcProducts" SelectCommand="SELECT Id, Title FROM Products" ConnectionString="<%$ ConnectionStrings:Products %>" Runat="server" />
</form>
</body> </html>
File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration> Three properties that have an effect on its layout: RepeatColumns: The number of columns of radio buttons to display. RepeatDirection: The direction that the radio buttons are repeated.
Possible values are Horizontal and Vertical.
RepeatLayout: Determines whether the radio buttons are displayed in an HTML table.
Possible values are Table and Flow.</source>
Get selected item index from asp:RadioButtonList (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
sub Submit(Sender as Object, e as EventArgs) dim strIncome as string = lbIncome.SelectedItem.Text dim strAge as string = rlAge.SelectedItem.Text lblMessage.Text = "Hello " & tbName.Text & "!" & _ "Your income is: " & strIncome & "
" & _ "Your age is: " & strAge & "
" if rlAge.SelectedIndex < 3 then lblMessage.Text += "You"re a young one!" else lblMessage.Text += "You"re a wise one!" end if if cbNewsletter.Checked then lblMessage.Text += "You will be receiving our" & _ " newsletter shortly." end if end sub
</script> <html><body>
<form runat="server"> <asp:Label id="lblMessage" runat="server" /> Enter your name: <asp:TextBox id="tbName" runat="server" /> Choose your age:
<asp:RadioButtonList id="rlAge" runat="server" RepeatDirection="horizontal"> <asp:ListItem><18</asp:ListItem> <asp:ListItem>19-24</asp:ListItem> <asp:ListItem>25-34</asp:ListItem> <asp:ListItem>35-49</asp:ListItem> <asp:ListItem>50-65</asp:ListItem> </asp:RadioButtonList> Choose your income:
<asp:ListBox id="lbIncome" runat="server" size=1> <asp:ListItem>< $9</asp:ListItem> <asp:ListItem>$10-$99</asp:ListItem> <asp:ListItem>$100-$499</asp:ListItem> <asp:ListItem>> $500</asp:ListItem> </asp:ListBox> Do you want to receive our newsletter?
<asp:Checkbox id="cbNewsletter" runat="server" Text="Yes!" /> <asp:Button id="btSubmit" runat="server" Text="Submit" OnClick="Submit" /> </form>
</body></html></source>