<%@ 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>DataList 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:DataList ID="DataList1" runat="server" RepeatColumns="5" GridLines="Both">
<FooterStyle Font-Bold="true" ForeColor="blue" />
<HeaderTemplate>
<h2>We have customers in the following cities</h2>
</HeaderTemplate>
<ItemTemplate>
<%# Eval("City") %> <b><%# Eval("Country")%></b>
</ItemTemplate>
<FooterTemplate>
<%# CalcTotal() %> cities
</FooterTemplate>
</asp:DataList>
</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);
DataList1.DataSource = data;
DataList1.DataBind();
}
}
|