DropDownList 实现下拉列表三级连动
注意事项:
首先要将 DropDownList的AutoPostBack设为True,意思是当选定内容更改后,自动回发到服务器。
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
/// <summary>
/// 加载厂商表
/// </summary>
private void FillList1()
{
List<ProductorData> list = new ProductorDA().select();
foreach (ProductorData data in list)
{
DropDownList1.Items.Add(new ListItem(data.Prod_name, data.Prod_code));
}
}
/// <summary>
/// 加载系列
/// </summary>
private void FillList2()
{
if (DropDownList1.SelectedItem != null) //判断上级列表的内容是否为空!
{
DropDownList2.Items.Clear(); //每加载一次都要清空下拉列表的内容!
string pd2 = DropDownList1.SelectedItem.Value; //取出上级的内容,根据上级内容查询
List<BrandData> list = new BrandDA().selectProd_code(pd2);
foreach (BrandData data in list)
{
DropDownList2.Items.Add(new ListItem(data.Brand_name, data.Brand_code));
}
}
}
/// <summary>
/// 加载型号
/// </summary>
private void FillList3()
{
if (DropDownList2.SelectedItem != null) //判断上级列表的内容是否为空!
{
DropDownList3.Items.Clear(); //每加载一次都要清空下拉列表的内容!
string pd3 = DropDownList2.SelectedItem.Value; //取出上级内容,根据上级内容查询
List<CarData> list = new CarDA().selectBrand(pd3);
foreach (CarData data in list)
{
DropDownList3.Items.Add(new ListItem(data.Name, data.Code));
}
}
}
/// <summary>
/// 当页面初次加载时执行以下方法!
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillList1(); //加载厂商
FillList2(); //加载系列
FillList3(); //加载型号
}
}
/// <summary>
/// 当厂商内容发生变化时自动加载系列和型号
/// </summary>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
FillList2(); //加载系列
FillList3(); //加载型号
}
/// <summary>
/// 当系列内容发生变化时自动加载型号
/// </summary>
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
FillList3(); //加载型号
}
}


注意事项:
首先要将 DropDownList的AutoPostBack设为True,意思是当选定内容更改后,自动回发到服务器。
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Da
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
/// <summary>
/// 加载厂商表
/// </summary>
private void FillList1()
{
List<ProductorData> list = new ProductorDA().select();
foreach (ProductorData da
{
DropDownList1.Items.Add(new ListItem(da
}
}
/// <summary>
/// 加载系列
/// </summary>
private void FillList2()
{
if (DropDownList1.SelectedItem != null) //判断上级列表的内容是否为空!
{
DropDownList2.Items.Clear(); //每加载一次都要清空下拉列表的内容!
string pd2 = DropDownList1.SelectedItem.Value; //取出上级的内容,根据上级内容查询
List<BrandData> list = new BrandDA().selectProd_co
foreach (BrandData da
{
DropDownList2.Items.Add(new ListItem(da
}
}
}
/// <summary>
/// 加载型号
/// </summary>
private void FillList3()
{
if (DropDownList2.SelectedItem != null) //判断上级列表的内容是否为空!
{
DropDownList3.Items.Clear(); //每加载一次都要清空下拉列表的内容!
string pd3 = DropDownList2.SelectedItem.Value; //取出上级内容,根据上级内容查询
List<CarData> list = new CarDA().selectBrand(pd3);
foreach (CarData da
{
DropDownList3.Items.Add(new ListItem(da
}
}
}
/// <summary>
/// 当页面初次加载时执行以下方法!
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillList1(); //加载厂商
FillList2(); //加载系列
FillList3(); //加载型号
}
}
/// <summary>
/// 当厂商内容发生变化时自动加载系列和型号
/// </summary>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
FillList2(); //加载系列
FillList3(); //加载型号
}
/// <summary>
/// 当系列内容发生变化时自动加载型号
/// </summary>
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
FillList3(); //加载型号
}
}


浙公网安备 33010602011771号