2014-04-11 43 views
2

我的表單中有四個dropdownlistbox,我想根據第一個下拉列表中的項目選擇將項目加載到三個下拉列表中,第一個下拉列表中有folloding項目如何在從asp.net中的另一個下拉列表中選擇項目後將項目加載到下拉列表中c#

金額, PAC, 基本計量單位

不管我是誰選擇從第一個下拉列表,我想在同一選擇的項目裝入剩餘的三個下拉列表

我有嘗試了下面的代碼,但它不按預期工作

protected void ddl_UOM_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string uom_Name = ddl_UOM.SelectedItem.Value; 
    ddl_UOM2.Items.Add(uom_Name); 
    ddl_UOM3.Items.Add(uom_Name); 
    ddl_UOM4.Items.Add(uom_Name); 
} 

請幫助。

+0

asp.net web表單()方法?? –

+0

是的asp.net網絡 – user123

+0

使用ajax控制工具包的瀑布式下拉 –

回答

0
protected void ddl_UOM_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    string uom_Name = ddl_UOM.SelectedItem.Value; 
    ddl_UOM2.Items.Clear(); 
    ddl_UOM3.Items.Clear(); 
    ddl_UOM4.Items.Clear(); 

    ddl_UOM2.Items.Add(uom_Name); 
    ddl_UOM3.Items.Add(uom_Name); 
    ddl_UOM4.Items.Add(uom_Name); 


} 

在ddl_UOM_SelectedIndexChanged編寫代碼()之後,呼叫ddl_UOM_SelectedIndexChanged從的Page_Load()

 protected void Page_Load(object sender, EventArgs e) 
     { 
     try 
     { 
      if (!IsPostBack) 
      { 
        ddl_UOM_SelectedIndexChanged(sender, e); 
      } 

     } 
     catch (Exception) 
     { 

     throw; 
     } 
    } 
1
+0

級聯下拉比使用javascript更好,並且明確發送ajax調用 –

+0

在這種情況下,@DatRid級聯下拉將起作用,他希望將所選項目添加到其他下拉菜單中。 –

+0

嗯nvm,我刪除我的評論,missread它,即時通訊對不起:D他應該刪除Javascript標籤,如果他沒有嘗試在Javascript中,但imo。 – DatRid

-1

您應該嘗試在JS中使用PageMethods以任何喜歡的方式隨時加載下拉列表。

+0

爲什麼你投下了這個?這是一個合法的答案,非常強大。 –

0

可能你沒有設置AutoPostBack property to true。試試下面的代碼示例:

ASPX:

<asp:DropDownList runat="server" ID="parentDropDown" OnSelectedIndexChanged="parentDropDown_SelectedIndexChanged" AutoPostBack="true"> 
    <asp:ListItem Text="1" Value="1"></asp:ListItem> 
    <asp:ListItem Text="2" Value="2"></asp:ListItem> 
    <asp:ListItem Text="3" Value="3"></asp:ListItem> 
</asp:DropDownList> 
<asp:DropDownList runat="server" ID="child1"> 
</asp:DropDownList> 
<asp:DropDownList runat="server" ID="child2"> 
</asp:DropDownList> 

代碼背後:

protected void parentDropDown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string uom_Name = parentDropDown.SelectedValue; 
    child1.Items.Add(uom_Name); 
    child2.Items.Add(uom_Name); 
} 

如果你想添加在此之前,從子刪除現有項目:

protected void parentDropDown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string uom_Name = parentDropDown.SelectedValue; 

    child1.Items.Clear(); 
    child2.Items.Clear(); 

    child1.Items.Add(uom_Name); 
    child2.Items.Add(uom_Name); 
} 
+0

謝謝,它正在工作 – user123

+0

@ user3515164很高興爲您效勞。不要忘記註冊並將其標記爲答案。以便它可以幫助其他用戶。 – SpiderCode

+0

對不起,它有一些問題,問題是當我們第一次選擇第一個項目,當頁面加載時,它不會加載到其他DDL 謝謝 – user123

0

您必須將AutoPostBack =「true」設置爲第一個下拉列表,並在添加新項目之前清除其他下拉項目。

ASPX:

<asp:DropDownList ID="ddl_UOM" runat="server" OnSelectedIndexChanged="ddl_UOM_SelectedIndexChanged" AutoPostBack="true"> 
     <asp:ListItem Text="Amount" Value="Amount"></asp:ListItem> 
     <asp:ListItem Text="PAC" Value="PAC"></asp:ListItem> 
     <asp:ListItem Text="Base" Value="Base"></asp:ListItem> 
</asp:DropDownList> 
<asp:DropDownList ID="ddl_UOM2" runat="server"></asp:DropDownList> 
<asp:DropDownList ID="ddl_UOM3" runat="server"></asp:DropDownList> 
<asp:DropDownList ID="ddl_UOM4" runat="server"></asp:DropDownList> 

ASPX。CS

protected void ddl_UOM_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string uom_Name = ddl_UOM.SelectedItem.Value; 
     ddl_UOM2.Items.Clear(); 
     ddl_UOM2.Items.Add(new ListItem(uom_Name, uom_Name)); 

     ddl_UOM3.Items.Clear(); 
     ddl_UOM3.Items.Add(new ListItem(uom_Name, uom_Name)); 

     ddl_UOM4.Items.Clear(); 
     ddl_UOM4.Items.Add(new ListItem(uom_Name, uom_Name)); 
    } 
+0

它有一些問題,問題是當我們在第一時間選擇第一個項目時頁面加載時它不會加載到其他ddl謝謝@Charbel Boutros – user123

+0

你必須將ddl_UOM_SelectedIndexChanged中的代碼添加到Page_Load函數中。 –

+0

謝謝@ Charbel Boutros它工作正常 – user123

相關問題