我正在为类(class)作业创建一个网络表单,本质上允许您选择从 0 到每种产品可用数量的数量。我们使用 AdventureWorks 2014 作为我们的数据源。
但是它只显示最大数量,而不是从 0 到最大数量。
我只是不知道要添加什么,以便它可以显示 0 到最大数量。谢谢。
我对背后的代码没有任何了解,这只是基本的:
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnOrder_Click(object sender, EventArgs e)
{
}
protected void ddlQuantity_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
最佳答案
您可以通过处理 SelectedIndexChanged
来执行绑定(bind)事件来自ddlProductName
填写ddlQuantity
项目:
ASPX
<asp:DropDownList ID="ddlProductName" runat="server" AutoPostBack="True" DataSourceID="ddlProductNameitems" DataTextField="Name" DataValueField="Name"
OnSelectedIndexChanged="ddlProductName_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlQuantity" runat="server" AutoPostBack="True" ...></asp:DropDownList>
然后使用 List
集合来存储从 0 到 SUM 查询设置的最大值的所有数字,然后绑定(bind) List
至DropDownList
在SelectedIndexChanged
上面给出的事件:
ASPX.cs(代码隐藏)
protected void ddlProductName_SelectedIndexChanged(object sender, EventArgs e)
{
List<string> quantities = new List<string>();
int maxQuantity = 0;
// retrieve SUM result from SqlDataSource
// if 'DataSourceSelectArguments.Empty' doesn't work, try other 'DataSourceSelectArguments' options
DataView view = QuantityChoices.Select(DataSourceSelectArguments.Empty) as DataView;
// set maximum quantity from SUM query result
if (view != null)
{
maxQuantity = int.Parse(view.Table.Rows[0]["TotalInventory"].ToString());
}
else
{
// assign maxQuantity from SqlConnection here
}
// add every quantity amount to the list...
for (int i = 0; i <= maxQuantity; i++)
{
quantities.Add(i.ToString());
}
// ... then sort from least value...
quantities.Sort();
// ... and bind the list here!
ddlQuantity.DataSource = quantities;
ddlQuantity.DataBind();
}
注意:System.Data
应添加命名空间以使用 DataView
成分。请注意,可能需要删除 DataSourceID
, DataTextField
& DataValueField
来自ddlQuantity
绑定(bind)对应的DropDownList
带有生成的数量列表。
关于mysql - ASPNet 下拉列表从 0 到可用数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47128361/