2017-03-04 41 views
0

大家好我一直在努力中,我有4個下拉列表是ddlpackage,ddlcategory,ddlsubcategory,ddlpackageprice分別命名爲顯示 以下按鈕是前端的圖像的項目:Image of Front end 這裏是形象數據庫中的表Image of tables from which i have retreived data to show in dropdownlist 現在我遇到的問題是,當從ddlpackage中選擇一個選項,然後單擊顯示我只是得到ddlcategory上的選項,然後再次點擊顯示按鈕即時獲取選項上ddlsubcategory,然後我有再次點擊顯示按鈕以獲得ddlpackage價格的選項。我想顯示所有選項,單擊顯示按鈕,並選擇下拉列表ddlpackage這裏是我的C#代碼:如何在點擊asp.net中的[show]按鈕時從數據庫中選擇下拉列表中的選項來填充其他下拉列表?

private String strConnection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\PROJECT SEM6\Online Tours and Travels\App_Data\ToursandTravels.mdf;Integrated Security=True;User Instance=True"; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindPackageDropdown(); 
    } 
} 
protected void BindPackageDropdown() 
{ 
    //conenction path for database 
    SqlConnection con = new SqlConnection(strConnection); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("select * from package", con); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    con.Close(); 
    ddlpackage.DataSource = ds; 
    ddlpackage.DataTextField = "packname"; 
    ddlpackage.DataValueField = "packid"; 
    ddlpackage.DataBind(); 
    ddlpackage.Items.Insert(0, new ListItem("--Select--", "0")); 
    ddlcategory.Items.Insert(0, new ListItem("--Select--", "0")); 
} 
protected void ddlpackage_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int packageid = Convert.ToInt32(ddlpackage.SelectedValue); 
    SqlConnection con = new SqlConnection(strConnection); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("select * from category where Cat_id=" + packageid, con); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    con.Close(); 
    ddlcategory.DataSource = ds; 
    ddlcategory.DataTextField = "Cat_name"; 
    ddlcategory.DataValueField = "Cat_id"; 
    ddlcategory.DataBind(); 
    ddlcategory.Items.Insert(0, new ListItem("--Select--", "0")); 
} 


protected void ddlcategory_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int categoryid = Convert.ToInt32(ddlcategory.SelectedValue); 
    SqlConnection con = new SqlConnection(strConnection); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("select * from subcategory where catid=" + categoryid, con); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    con.Close(); 
    ddlsubcategory.DataSource = ds; 
    ddlsubcategory.DataTextField = "subcatname"; 
    ddlsubcategory.DataValueField = "subcatid"; 
    ddlsubcategory.DataBind(); 
    ddlsubcategory.Items.Insert(0, new ListItem("--Select--", "0")); 
} 
protected void ddlsubcategory_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    int subcategoryid = Convert.ToInt32(ddlsubcategory.SelectedValue); 
    SqlConnection con = new SqlConnection(strConnection); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("select * from package where packid=" + subcategoryid, con); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    con.Close(); 
    ddlpackageprice.DataSource = ds; 
    ddlpackageprice.DataTextField = "packageprice"; 
    ddlpackageprice.DataValueField = "packageprice"; 
    ddlpackageprice.DataBind(); 
    ddlpackageprice.Items.Insert(0, new ListItem("--Select--", "0")); 
} 

請幫忙對不起我的英文...謝謝!

+0

你的問題似乎並不正確,您只需點擊一下「顯示」按鈕,即可填充所有下拉列表(ddl)。這似乎不合邏輯,因爲一個下拉是依賴於前一個。 – Nadeem

+0

所以它不能發生?所以我不得不一次點擊那個按鈕吧?你可以提供一些其他的解決方案,但如果沒有SHOW按鈕,它會適用於我可以不顯示按鈕嗎? @Nadeem –

回答

0

您無需再次單擊「顯示」按鈕。當第一次加載頁面時,您通過加載第一個下拉列表來執行正確的操作,這裏是您的代碼已經在執行此操作。 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindPackageDropdown(); } }

現在你只需要確保每一個下拉列表中,只要您更改在下拉列表中選擇,相應的事件會被解僱例如:ddlsubcategory_SelectedIndexChanged等

+0

ohk它發生在點擊按鈕讓我嘗試沒有顯示按鈕,我會回來給你謝謝你的提示@Nadeem –

+0

即時通訊沒有得到預期的一個我的意思是我刪除了顯示按鈕,然後當我選擇從ddl包的選項沒有從ddlcategory得到選項請幫助.. @ Nadeem –

+0

把一個調試器放在下面的函數中,並檢查它是被解僱或當你在ddl包中更改項目時,它應該如果不是,那麼是缺少事件這個處理程序。如果你打斷點,然後檢查數據是否來自數據庫,我希望你可以找到原因,如果你的查詢沒有問題,它不填充ddlCategory。 '保護無效ddlpackage_SelectedIndexChanged(對象發件人,EventArgs e) {.......} ' – Nadeem

相關問題