我必须为学校制作一个小型投票系统。
我有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个数字一起使用?
提前致谢!
答案 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()));
}