【问题标题】:How to redirect to certain pages depending on what option that I select for dropdownlist?如何根据我为下拉列表选择的选项重定向到某些页面?
【发布时间】:2014-04-19 03:37:18
【问题描述】:

我有一张名为 FACILITIES 的表。我已经对其进行了编码,因此当为第一个下拉列表选择会议时,第二个下拉列表将显示属于 FAC_TYPE 列数据的 FAC_CODE 列数据。

问题是我为属于任何 FAC_TYPE 的 FAC_CODE 选择的任何选项,它总是会重定向到 number1.aspx。我希望这样做,如果我为 FAC_TYPE 选择 Meeting 并且为 FAC_CODE 选择任何选项,它将转到 number1.aspx。如果我为 FAC_TYPE 选择 Tutorial 并且为 FAC_CODE 选择任何选项,它将转到 number2.aspx。如果我为 FAC_TYPE 选择 Lecture,为 FAC_CODE 选择任何选项,它将转到 number2.aspx。

我的第一个下拉列表名称是 FAC_TYPE 字段,称为 ddlFacilityType,我的第二个下拉列表名称是 FAC_CODE 字段,称为 ddlFacility。两者都勾选了自动回发。那么如何在 ddlFacility_SelectedIndexChanged 事件中编码呢?为这个帖子加油

public partial class MainMenu : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].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

            ddlFacilityType.Items.Insert(0, new ListItem(" Select type", "0"));
        }

        ddlFacility.Items.Insert(0, new ListItem(" Select room", "0"));
    }


    protected void ddlFacilityType_SelectedIndexChanged(object sender, EventArgs e)
    {
        string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].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

        ddlFacility.Items.Insert(0, new ListItem(" Select room", "0"));
    }

    protected void ddlFacility_SelectedIndexChanged(object sender, EventArgs e)
    {
        Response.Redirect("number1.aspx");
    }
}

【问题讨论】:

    标签: c# forms redirect web drop-down-menu


    【解决方案1】:

    您可以在 ddlFacility_SelectedIndexChanged 处理程序中执行类似的操作。

    protected void ddlFacility_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(ddlFacilityType.SelectedItem.ToString() == "Meeting")
        {
            Response.Redirect("number1.aspx");
        }
        else if(ddlFacilityType.SelectedItem.ToString() == "Tutorial" || ddlFacilityType.SelectedItem.ToString()=="Lecture")
        {
            Response.Redirect("number2.aspx");
        }
    }
    

    你也可以通过下拉列表的 SelectedIndex 属性来做同样的事情,在这种情况下,代码会是这样的

    if(ddlFacilityType.SelectedIndex == 1) //Meeting is at index 1 of the ddlFacilityType dropdown
    {
        Response.Redirect("number1.aspx");
    } 
    

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2014-08-05
      相关资源
      最近更新 更多