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
中为该下拉列表编写了其他功能。
这里是
所以问题是您在初始获取请求上绑定下拉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,请不要意外地进行回发,编写ddlAdjustmentType
的change
事件,然后进行ajax调用并填充其他下拉列表。