我有一个 DropDownList 通过 OnInit 方法填充其值。它使用 HiddenField 并查询数据库以填充自身,如下所示:
protected void DropDown_Init(object sender, EventArgs e)
{
try
{
string value = Page.Request[choice.UniqueID] == null ? choice.Value : Page.Request[choice.UniqueID].ToString();
PricingModelDataContext ctx = new PricingModelDataContext();
var list = from p in ctx.servers
where p.server_type == (((from a in ctx.server_types
where a.name == value
select new { a.id }).Single()).id)
&& p.isActive.Value
select p;
DropDownList dList = sender as DropDownList;
dList.Items.Clear();
dList.Items.Add("");
foreach (var item in list)
{
dList.Items.Add(item.name);
}
}
catch { }
}
一切正常,直到我单击一个自动填充值的按钮,如下所示:
DropDown_Init(DropDown, e);
DropDown.SelectedValue = "Set Value";
现在,每当页面重新加载 DropDownList 时,这些值都不会改变(它们仍然包含从按钮单击触发的原始值)。
为什么会出现这种行为?有没有办法解决这个问题?谢谢。