繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM