我的页面上有两个下拉列表,ddlMin和ddlMax。
在页面加载时,我选择request.querystring的值。在调试时,它会获取所选的值,直到它到达下一行,然后获取IT的选定值?
http://localhost:37661/Default.aspx?search=&min=450000
ddlMin.SelectedValue = !FpsFunctions.IsNothing(Request.QueryString["min"])
? Request.QueryString["min"]
: "0"; <-- at this point it's 450000
ddlMax.SelectedValue = !FpsFunctions.IsNothing(Request.QueryString["max"])
? Request.QueryString["max"]
: "0"; <-- after this ddlMin.SelecgtedValue changes back to 0
我已经检查了.cs.designer以确保它没有继承愚蠢的东西,但一切看起来都是正确的。
提前帮助干杯。
答案 0 :(得分:0)
在创建我的下拉列表时,我正在创建我的项目
foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
{
items = item.ToLower() == "any"
? new ListItem(item, "0")
: item.Contains("+")
? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
"999999999")
: new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
ddlMin.Items.Add(items);
ddlMax.Items.Add(items);
}
这意味着什么,虽然我不清楚为什么它有这么大的影响,但是这个列表项作为一个单一的项目被附加到两个下拉列表中。因此,即使ddlMin获得正确的值并在ddlMax返回为0时选择它,它也会在两者中选择相同的listitem ...为了纠正这个问题,你需要将添加到ddlMin和ddlMax分开。
foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
{
items = item.ToLower() == "any"
? new ListItem(item, "0")
: item.Contains("+")
? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
"999999999")
: new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
ddlMin.Items.Add(items);
}
foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(','))
{
items = item.ToLower() == "any"
? new ListItem(item, "0")
: item.Contains("+")
? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))),
"999999999")
: new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item);
ddlMax.Items.Add(items);
}
恼人但显然必然