[英]Select item from a drop down list, remove item from list as a value then update a total
我试图使用asp.net和C#,我想创建一个给定值为10的变量。让我们调用此变量池,然后我希望能够从下拉列表中选择1到10之间的数字。
假设我从ddl中选择5,然后应从池中减去5,这将使池显示5。
如果我想返回并从下拉列表中选择另一个数字,我希望只能看到我可以从池中减去的数字。 IE浏览器我不能选择6,因为池中只剩下5。 请帮忙
这么难吗
根据下面的代码注释进行解释
.aspx
<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional">
<ContentTemplate>
My Pool : <asp:Label ID="lbl" runat="server" Text="10"></asp:Label><br />
<asp:HiddenField ID="hf" runat="server" Value="10" />
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl" />
</Triggers>
</asp:UpdatePanel>
.cs
protected void Page_Load(object sender, EventArgs e)
{
// Check
if (!IsPostBack)
{
// Variable
DataTable dt = new DataTable();
dt.Columns.Add("Count");
// Loop
for (int i = 0; i < 11; i++)
dt.Rows.Add(i);
// Bind to Drop Down
ddl.DataSource = dt;
ddl.DataTextField = "Count";
ddl.DataValueField = "Count";
ddl.DataBind();
// Dispose
dt.Dispose();
}
}
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
// Variable
int myPool = 0;
int mySelectedValue = 0;
int result = 0;
int dropDownValue = 0;
bool isInteger = false;
// Parse Integer
int.TryParse(hf.Value, out myPool);
int.TryParse(ddl.SelectedValue, out mySelectedValue);
// Set Result
result = myPool - mySelectedValue;
// Set to Hidden Value
hf.Value = result + "";
lbl.Text = result + "";
foreach (ListItem item in ddl.Items)
{
// Reset
isInteger = false;
dropDownValue = 0;
// Parse Drop Down Value
isInteger = int.TryParse(item.Value, out dropDownValue);
// Check
if (isInteger)
{
// Ensure is not less than 0, If less than 0 disabled the selected value
if ((result - dropDownValue) < 0)
item.Enabled = false;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.