Repeater and DropDownList : DropDownList « Data Binding « ASP.NET Tutorial






<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
    Inherits="Default" %>

<!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>Repeater in action</title>
</head>
<body>
    <div id="pageContent">
        <form id="form1" runat="server">
            <asp:DropDownList ID="Countries" runat="server" 
                AutoPostBack="true" 
                AppendDataBoundItems="True" 
                OnSelectedIndexChanged="Countries_SelectedIndexChanged">
                <asp:ListItem>[No country]</asp:ListItem>
            </asp:DropDownList>
            
            <asp:Repeater ID="Repeater1" runat="server">
                <HeaderTemplate>
                    <h2>We have customers in the following cities</h2>
                    <hr />
                </HeaderTemplate> 
                <SeparatorTemplate>
                    <hr noshade style="border:dashed 1px blue" />
                </SeparatorTemplate>
                <ItemTemplate>
                    <%# Eval("City") %> &nbsp;&nbsp;<b><%# Eval("Country")%></b>
                </ItemTemplate>
                <FooterTemplate>
                    <hr />
                    <%# CalcTotal() %> cities
                </FooterTemplate>
            </asp:Repeater>
        </form>
    </div>
</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 Default : System.Web.UI.Page
{
    DataTable data;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            FillCountries();
        }
    }

    protected void FillCountries()
    {
        string connString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
        string cmdText = "SELECT DISTINCT country FROM customers;";

        data = new DataTable();
        SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString);
        adapter.Fill(data);
        Countries.DataSource = data;
        Countries.DataTextField = "country";
        Countries.DataBind();
    }

    protected int CalcTotal()
    {
        return data.Rows.Count;
    }

    protected void Countries_SelectedIndexChanged(object sender, EventArgs e)
    {
        string connString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
        string cmdText = "SELECT DISTINCT country, city FROM customers WHERE country=@TheCountry";

        data = new DataTable();
        SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString);
        adapter.SelectCommand.Parameters.AddWithValue("@TheCountry", Countries.SelectedValue);
        adapter.Fill(data);
        Repeater1.DataSource = data;
        Repeater1.DataBind();
    }
}








19.13.DropDownList
19.13.1.Binding to a Data Source
19.13.2.Determining the Selected List Item: SelectedIndex, SelectedItem, SelectedValue
19.13.3.Master/Details form with a list control
19.13.4.Enabling Automatic PostBacks
19.13.5.Table record editor by DropDownList and ListBox
19.13.6.Link DropDownList with SqlDataSource and do the editing
19.13.7.Prevent overlapping edits.
19.13.8.Binding ArrayList to asp:DropDownList
19.13.9.Data binding by filling list and drop-down list controls with the results of direct ADO.NET queries
19.13.10.Repeater and DropDownList