Radio Button List Demo

This demo illustrates how to use data-binding to dynamically create a radio button list based on database information. The data below is from the Sample Chapters Database. First, the radio button list is bound to the tblPublishers table. Then, when you select a publisher, a DataGrid Web control is populated with the books provided by the selected publisher. (Adding paging to the DataGrid would be a snap. Just read: Paing Database Results in ASP.NET!)


Choose a Publisher's Books to View








Source Code:
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>
<script language="vb" runat="server">
  Sub Page_Load(sender as Object, e as EventArgs)
    If Not Page.IsPostBack then
      BindData()
    End If  
  End Sub

  
  Sub BindData()
    '1. Create a connection
    Dim myConnection as New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))

    '2. Create the command object, passing in the SQL string
        Const strSQL as String = "SELECT PublisherID, Name FROM tblPublishers ORDER BY Name"
        Dim myCommand as New SqlCommand(strSQL, myConnection)

    myConnection.Open()

    radlstPubs.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    radlstPubs.DataBind()  

  End Sub



  Sub btnViewBooks_Click(sender as Object, e as EventArgs)
    'If the user has not selected an item from the radiobuttonlist,
    'do nothing
    If radlstPubs.SelectedItem Is Nothing then Exit Sub
    
    '1. Create a connection
    Dim myConnection as New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))

    '2. Create the command object, passing in the SQL string
        Dim strSQL as String = "SELECT Title, Description FROM tblBooks " & _
                " WHERE PublisherID = " & radlstPubs.SelectedItem.Value & _
                " ORDER BY Title"
        Dim myCommand as New SqlCommand(strSQL, myConnection)

    myConnection.Open()

    dgBooks.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    dgBooks.DataBind()  
    
    lblTitle.Text = "Books Published by " & radlstPubs.SelectedItem.Text
  End Sub
</script>

<html>
<body>

  <h1>Radio Button List Demo</h1>
  This demo illustrates how to use data-binding to dynamically
  create a radio button list based on database information.
  The data below is from the
  <a href="http://www.4guysfromrolla.com/webtech/chapters/">Sample Chapters Database</a>.
  First, the radio button list is bound to the <code>tblPublishers</code> table.  Then,
  when you select a publisher, a DataGrid Web control is populated with
  the books provided by the selected publisher.  (Adding paging to the DataGrid would be
  a snap.  Just read: <a href="http://www.4guysfromrolla.com/webtech/072101-1.shtml">Paing
  Database Results in ASP.NET</a>!)
  <p><hr><p>

  <form runat="server">
    
    <b>Choose a Publisher's Books to View</b><br>
    <asp:radiobuttonlist id="radlstPubs" runat="server" Font-Name="Verdana"
            DataValueField="PublisherID" DataTextField="Name" />
    <br>
    <asp:button id="btnViewBooks" runat="server" Font-Name="Verdana"
          Text="View Published Books" OnClick="btnViewBooks_Click" />
    
    <p align="center">
    <asp:label id="lblTitle" runat="server" Font-Name="Verdana"
          Font-Size="Large" Font-Bold="True" />
    <asp:datagrid id="dgBooks" runat="server"
      Font-Name="Verdana" Font-Size="Smaller"
      HeaderStyle-BackColor="Purple" HeaderStyle-ForeColor="White"
      HeaderStyle-Font-Size="Small" HeaderStyle-Font-Bold="True"
      AutoGenerateColumns="False">
    
      <Columns>
      
        <asp:BoundColumn HeaderText="Book Title" HeaderStyle-HorizontalAlign="Center"
                DataField="Title" />
        <asp:BoundColumn HeaderText="Synopsis" HeaderStyle-HorizontalAlign="Center"
                DataField="Description" />
      </Columns>
    </asp:datagrid>
    </p>
  </form>  
	


[Return to the article]