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

posted @ 2016-09-22 18:49  Dream&er  阅读(1379)  评论(0编辑  收藏  举报