aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="省市級聯數據綁定.aspx.cs" Inherits="簡單綁定.省市級聯數據綁定" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
</asp:DropDownList>
</div>
</form>
</body>
</html>
aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using 數據導入導出練習;
using System.Data.SqlClient;
namespace 簡單綁定
{
public partial class 省市級聯數據綁定 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlDataReader reader = sqlhelper.datareader("select * from p");
if (reader.HasRows)
{
DropDownList1.DataSource = reader;//讀取表中的省份
DropDownList1.DataTextField = "p";//將表中的省份名稱綁定到控件的字段名上
DropDownList1.DataValueField = "id";//將表中的id綁定到控件的value上
DropDownList1.DataBind();//進行數據綁定
DropDownList1.SelectedIndex = 0;//默認選擇項爲第一項
//以下是初始化城市列表用的
string value = DropDownList1.SelectedValue;
SqlDataReader reader2 = sqlhelper.datareader("select * from city where pid=@pid", new SqlParameter("@pid", value));
if (reader2.HasRows)
{
DropDownList2.DataSource = reader2;
DropDownList2.DataTextField = "city";
DropDownList2.DataValueField = "id";
DropDownList2.DataBind();
}
}
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string value=DropDownList1.SelectedValue;
SqlDataReader reader = sqlhelper.datareader("select * from city where pid=@pid", new SqlParameter("@pid", value));
if (reader.HasRows)
{
DropDownList2.DataSource = reader;
DropDownList2.DataTextField = "city";
DropDownList2.DataValueField = "id";
DropDownList2.DataBind();
}
}
}
}