动态更改下拉列表

时间:2016-05-09 13:23:07

标签: c# asp.net

我必须为学校制作一个小型投票系统。

我有2个下拉列表。你有10分投票。如果此人在第一个下拉列表中选择9,则第二个下拉列表仅显示数字1.另一种方式也是如此。

我的代码代码:

        protected void ddLuuk_SelectedIndexChanged(object sender, EventArgs e)
    {

//dd means dropdownlist.

        ddGabriel.Items.Clear();
        var value = ddLuuk.SelectedValue;
        if (value == "10")
        {
            ddGabriel.Items.Add("0");
        }
        else if (value == "9")
        {
            ddGabriel.Items.Add("1");
        }
        else if (value == "8")
        {
            ddGabriel.Items.Add("1");
            ddGabriel.Items.Add("2");
        }

// etc etc.

现在我对这段代码的问题是:让我说我必须将数字增加到100.如果构造,我们不应该制作其他100个。

我的问题是:如何让这些代码更清晰,并使其与100个数字一起使用?

提前致谢!

4 个答案:

答案 0 :(得分:1)

怎么样:

    private int totalPoints = 100;
    protected void ddLuuk_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddGabriel.Items.Clear();
        var value = ddLuuk.SelectedValue;

        int pointsToGive = totalPoints - Convert.ToInt32(value);

        for (int i = 0; i < pointsToGive ; i++)
        {
            ddGabriel.Items.Add(i.ToString());
        }
    }

基本上我们会计算你给某人的积分差异以及你可以给予某人的积分。这种差异用于添加循环新元素。

我猜通常虽然Javascript会更合适。

答案 1 :(得分:0)

很简单,所有结果都是&#39; 10 - ValueOfDropDown&#39;。

概括,我们可以说10是最大下拉值。所以,把它放在一个变量中我会变成“MaxValue - ValueOfDropDown&#39;

你唯一应该注意的是你需要解析下拉值以使其成为一个数字,为​​此用途&#39; int.Parse(value)&#39;

答案 2 :(得分:0)

由于这可能是家庭作业,我将通过提供线索来帮助你:你需要一个for循环

答案 3 :(得分:0)

        ddGabriel.Items.Clear();
        var value = (int)ddLuuk.SelectedValue;
        if (value == 10)
        {
            Enumerable.Range(0, 1).ToList().ForEach(i => ddGabriel.Items.Add(i.ToString()));
        }
        else if (value < 10)
        {
            Enumerable.Range(1, 10 - value).ToList().ForEach(i => ddGabriel.Items.Add(i.ToString()));
        }