Dropdownlist选择的值不适用于绑定数据

时间:2015-11-21 07:25:42

标签: c# asp.net drop-down-menu

我选择dropdownlist我绑定另一个dropdownlist

在第一个下拉列表中,

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

这是我到目前为止尝试的代码

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它是

1 个答案:

答案 0 :(得分:1)

所以问题是你在初始获取请求中绑定了下拉列表ddlAdjustmentType。现在,当用户进行任何选择时,因为ddlAdjustmentType的autopostback属性未设置,所以没有任何反应。即使您设置了该属性,它也无法工作,因为您在其中编写了代码: -

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

您必须在下拉列表中添加更改事件,并要求用户单击该按钮,或者如果您希望在选择内容后立即填充其他下拉列表,请将下拉列表的AutoPostBack属性设置为真: -

<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调用并填充其他下拉列表。