2015-11-21 18 views
0

我有选择一个dropdownlist其中我结合其它dropdownlistDROPDOWNLIST选择的值不工作的结合数据

在第一下拉列表,

如果我选择一个值,一些数据应绑定到的第二个下拉列表。如果我选择第二个值,则应绑定其他一些数据。

这里是我的代码,我试过到目前为止

if (!IsPostBack) 
    { 
     BindAdjustmentType(); 
     if (ddlAdjustmentType.SelectedValue == "9") 
     { 
      BindItemCode("select distinct REPLACE(Current_Item_Code + ' ' + QUOTENAME(Current_Item_Desc,'()'), '*','') as ItemCode, " + 
          "Current_Item_Code from WMS_Storage_Bin where status='Confirmed'"); 
     } 
     if (ddlAdjustmentType.SelectedValue == "10") 
     { 
      BindItemCodeaddStock("select distinct (Navision_Item_Id + ' ' + QUOTENAME(Item_short_desc, '()')) as AddStock, " + 
            "Navision_Item_Id from Item_mst"); 
     }    
    } 
} 

也看到我的下拉的aspx代码

<asp:DropDownList ID="ddlAdjustmentType" runat="server" Style="width: 165px" CssClass="xy8"> 
         <asp:ListItem Value="0" Selected="True">--- Select ---</asp:ListItem> 
        </asp:DropDownList> 

我试图把调试点,但它不打码

已更新

public void BindItemCode(string query) 
{ 
    DataTable dtitemcode = CF.ExecuteDT(query); 
    ddlItemCode.DataTextField = "ItemCode"; 
    ddlItemCode.DataValueField = "Current_Item_Code"; 
    ddlItemCode.DataSource = dtitemcode; 
    ddlItemCode.DataBind(); 
    ddlItemCode.Items.Insert(0, new ListItem("--Select--", "0")); 
} 

public void BindItemCodeaddStock(string query) 
{ 
    DataTable dtadditemcode = CF.ExecuteDT(query); 
    ddlItemCode.DataTextField = "AddStock"; 
    ddlItemCode.DataValueField = "Navision_Item_Id"; 
    ddlItemCode.DataSource = dtadditemcode; 
    ddlItemCode.DataBind(); 
    ddlItemCode.Items.Insert(0, new ListItem("--Select--", "0")); 
} 

与此同时,我也在Jquery中为其他功能编写了该下拉列表。

Here

+0

Your DropDownList'ddlAdjustmentType'没有9或10的值,你在哪里绑定它们,以及如何?也许有问题 – Aristos

+0

@Aristos:我检查了这个值,它**没有**有'9'和'10'也看到我更新的问题,我如何绑定它们。 – BNN

+0

@RahulSingh:我把它绑定在'(!IsPostBack)里面' – BNN

回答

1

所以,问题是你在INTIAL get请求绑定下拉ddlAdjustmentType。现在当用户做出任何选择时,由于没有设置ddlAdjustmentType的autopostback属性,所以没有任何反应。即使你设置该属性,它不会工作,因为你里面写代码: -

if (!IsPostBack) 
{ 
    //Bind dropdown etc. 
} 

你将不得不在下拉菜单中添加一个变化事件,要么要求用户点击按钮或者如果你想其他dropwdown要尽快你选择的东西填充,下拉的AutoPostBack属性设置为true: -

<asp:DropDownList ID="ddlAdjustmentType" runat="server" autopostback="true" 
    onselectedindexchanged="ddlAdjustmentType_change" Style="width: 165px" .. 

然后在后面的代码将事件写入方法: -

protected void Student_type_dd_change(object sender, EventArgs e) 
{ 
    if (ddlAdjustmentType.SelectedValue == "9") 
    { 
     ..logic here 
    } 
    if (ddlAdjustmentType.SelectedValue == "10") 
    { 
     ...logic here 
    } 
} 

但恕我直言,如果你正在使用jQuery的ajax已经不难做一个回发,写change事件ddlAdjustmentType,然后进行ajax调用并填充其他下拉菜单。

+0

获得选定的值,我们可以做到没有'回发'吗? – BNN

+0

@coder - 是的,读完我的最后一点。在jQuery代码中添加更改事件,使ajax调用获取数据并绑定其他下拉列表。 –