我正在尝试使用asp.net和C# 我想创建一个给定值为10的变量。 让我们调用这个变量池 然后我希望能够从下拉列表中选择1到10之间的数字。
让我说我从ddl中选择5 然后应该从池中减去5,这将使池显示5。
如果我想返回并从下拉列表中选择另一个号码,我希望只能看到我可以从池中减去的数字。 我不能选择6,因为池中只剩下5个。 请帮忙
答案 0 :(得分:0)
这难吗?
根据下面的代码评论解释
的.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;
}
}
}