Dropdownlist所选值不适用于绑定数据

本文关键字:适用于 绑定 数据 不适用 Dropdownlist | 更新日期: 2023-09-27 18:23:47

我选择了一个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中为该下拉列表编写了其他功能。

这里是

Dropdownlist所选值不适用于绑定数据

所以问题是您在初始获取请求上绑定下拉ddlAdjustmentType。现在,由于ddlAdjustmentType的autopostback属性没有设置,所以当用户进行任何选择时,都不会发生任何事情。即使你设置了这个属性,它也不会起作用,因为你在里面写了代码:-

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

您必须在下拉列表中添加一个Change事件,然后要求用户单击按钮,或者如果您希望在选择某个内容后立即填充其他下拉列表,请将下拉列表的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
    }  
}

但是IMHO,如果您已经在使用jquery-ajax,请不要意外地进行回发,编写ddlAdjustmentTypechange事件,然后进行ajax调用并填充其他下拉列表。