首页 > 代码库 > Webform 三级联动例子

Webform 三级联动例子

首先分别做三个下拉列表

<body>    <form id="form1" runat="server">        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList>        <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"></asp:DropDownList>        <asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList></form></body>

建类:China实体类

public China()    {            }    private string code;    public string Code    {        get { return code; }        set { code = value; }    }    private string name;    public string Name    {        get { return name; }        set { name = value; }    }    private string prentcode;    public string Prentcode    {        get { return prentcode; }        set { prentcode = value; }    }

数据访问类:

public class ChinaData{    SqlConnection conn = null;    SqlCommand cmd = null;    public ChinaData()    {        conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");        cmd = conn.CreateCommand();    }    public List<China> Select(string pcode)    {        cmd.CommandText = "select * from ChinaStates where ParentAreaCode=@pcode";        cmd.Parameters.Clear();        cmd.Parameters.AddWithValue("@pcode", pcode);        conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        List<China> list = new List<China>();        if (dr.HasRows)        {            while (dr.Read())            {                China data = new China();                data.Code = dr[0].ToString();                data.Name = dr[1].ToString();                data.Prentcode = dr[2].ToString();                list.Add(data);

            }

        }

        conn.Close();

        return list;

}

}

 

.cs后台代码

首先数据绑定:

if (!IsPostBack)        {  //调用方法绑定数据         Bind(DropDownList1,new ChinaStatesData().Select("0001"));Bind(DropDownList2, new ChinaStatesData().Select(DropDownList1.SelectedValue));Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));        }//委托        DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;        DropDownList2.SelectedIndexChanged += DropDownList2_SelectedIndexChanged;
//造方法:private void Bind(DropDownList ddl, List<ChinaStates> list)    {        ddl.DataSource = list;        ddl.DataTextField = "AreaName";        ddl.DataValueField = "AreaCode";        ddl.DataBind();    }
//SelectedIndexChanged事件 void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)    {        Bind(DropDownList2, new ChinaStatesData().Select(DropDownList1.SelectedValue));//填充市        Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));//填充区    }void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)    {        Bind(DropDownList3, new ChinaStatesData().Select(DropDownList2.SelectedValue));//填充区    }

代码部分完成后,将下拉列表的AutoPostBack属性改为true

Webform 三级联动例子