我选择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它是
答案 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调用并填充其他下拉列表。