我正在为类分配创建一个webform,它基本上允许您选择从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)
{
}
}
答案 0 :(得分:0)
您可以通过处理SelectedIndexChanged
中的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
集合存储从SUM查询设置的0到最大值的所有数字,然后将List
绑定到上面给出的DropDownList
事件中的SelectedIndexChanged
:< / p>
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
&amp;来自DataValueField
的{{1}}与生成的数量列表绑定相应的ddlQuantity
。