从下拉列表中选择项目,从列表中删除项目作为值,然后更新总计

时间:2015-11-22 23:27:43

标签: c# html asp.net

我正在尝试使用asp.net和C# 我想创建一个给定值为10的变量。 让我们调用这个变量池 然后我希望能够从下拉列表中选择1到10之间的数字。

让我说我从ddl中选择5 然后应该从池中减去5,这将使池显示5。

如果我想返回并从下拉列表中选择另一个号码,我希望只能看到我可以从池中减去的数字。 我不能选择6,因为池中只剩下5个。 请帮忙

1 个答案:

答案 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;
        }
    }
}