根据我在第一个下拉列表中选择的内容,在第二个下拉列表中显示值

时间:2014-03-13 04:46:00

标签: c# forms drop-down-menu

facilitytable

FAC_TYPE FAC_CODE

我有一张名为FACILITIES的表。如果我在FAC_TYPE下拉列表中选择一个选项,我希望FAC_CODE下拉列表显示属于FAC_TYPE的FAC_CODE。现在,我的FAC_CODE下拉列表显示FAC_CODE字段中的每个数据。我想要的是第二个下拉列表总是空的等等,如果我在第一个下拉列表中选择会议,L335和L336将只显示在FAC_CODE下拉列表中。然后,如果我选择教程,L337将只显示在FAC_CODE下拉列表中。帮助

public partial class MainMenu : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string
            SqlConnection con = new SqlConnection(constr);
            con.Open();


            SqlCommand com = new SqlCommand("select distinct FAC_TYPE from FACILITIES", con);  
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);  // fill dataset

            ddlFacilityType.DataTextField = ds.Tables[0].Columns["FAC_TYPE"].ToString(); // text field name of table dispalyed in dropdown
                        // to retrive specific  textfield name 
            ddlFacilityType.DataSource = ds.Tables[0];      //assigning datasource to the dropdownlist
            ddlFacilityType.DataBind();  //binding dropdownlist
        }

        if (!Page.IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string
            SqlConnection con = new SqlConnection(constr);
            con.Open();


            SqlCommand com = new SqlCommand("select distinct FAC_CODE from FACILITIES", con);
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);  // fill dataset

            ddlFacility.DataTextField = ds.Tables[0].Columns["FAC_CODE"].ToString(); // text field name of table dispalyed in dropdown
            // to retrive specific  textfield name 
            ddlFacility.DataSource = ds.Tables[0];      //assigning datasource to the dropdownlist
            ddlFacility.DataBind();  //binding dropdownlist
        }


    }
}

遵循桑杰代码。第二个下拉列表中没有显示任何内容,无论我在第一个下拉列表中点击什么选项。

problem

public partial class MainMenu : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string
            SqlConnection con = new SqlConnection(constr);
            con.Open();


            SqlCommand com = new SqlCommand("select distinct FAC_TYPE from FACILITIES", con);
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);  // fill dataset

            ddlFacilityType.DataTextField = ds.Tables[0].Columns["FAC_TYPE"].ToString(); // text field name of table dispalyed in dropdown
            // to retrive specific  textfield name 
            ddlFacilityType.DataSource = ds.Tables[0];      //assigning datasource to the dropdownlist
            ddlFacilityType.DataBind();  //binding dropdownlist
        }
    }


    protected void ddlFacilityType_SelectedIndexChanged(object sender, EventArgs e)
    {
        string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string
        SqlConnection con = new SqlConnection(constr);
        con.Open();


        SqlCommand com = new SqlCommand("select distinct FAC_CODE from FACILITIES where FAC_TYPE='" + ddlFacilityType.SelectedValue.ToString() + "'", con);
        SqlDataAdapter da = new SqlDataAdapter(com);
        DataSet ds = new DataSet();
        da.Fill(ds);  // fill dataset

        ddlFacility.DataTextField = ds.Tables[0].Columns["FAC_CODE"].ToString(); // text field name of table dispalyed in dropdown
        // to retrive specific  textfield name 
        ddlFacility.DataSource = ds.Tables[0];      //assigning datasource to the dropdownlist
        ddlFacility.DataBind();  //binding dropdownlist
    }
}

1 个答案:

答案 0 :(得分:0)

您可以填写第二个下拉菜单" ddlFacility"使用dropdown ddlFacilityType

的onselectedchange事件
<asp:DropDownList ID="ddlFacilityType" runat="server" onselectedindexchanged="ddlFacilityType_SelectedIndexChanged" AutoPostBack="true">   



protected void ddlFacilityType_SelectedIndexChanged(object sender, EventArgs e)
{


            string constr = ConfigurationManager.ConnectionStrings["sacpConnectionString"].ToString(); // connection string
            SqlConnection con = new SqlConnection(constr);
            con.Open();


            SqlCommand com = new SqlCommand("select distinct FAC_CODE from FACILITIES where FAC_TYPE='"+ddlFacilityType.SelectedValue.ToString()+"'", con);
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);  // fill dataset

            ddlFacility.DataTextField = ds.Tables[0].Columns["FAC_CODE"].ToString(); // text field name of table dispalyed in dropdown
            // to retrive specific  textfield name 
            ddlFacility.DataSource = ds.Tables[0];      //assigning datasource to the dropdownlist
            ddlFacility.DataBind();  //binding dropdownlist


}