我已经开始在现有项目中重写代码,并改变了dropdownlists
填充两个代码的方式。DataBind
在回发后使用SelectedValue
具有正确值时Page_Load
。但是在使用时AddRange
始终SelectedValue
是下拉列表中的第一个值。
下拉列表的填充方式如何影响回发行为?是的,页面中也有 java 脚本,但我看不出它们如何干扰这一点。
工作方式(SelectedValue
在 中是正确的Page_Load
):
protected void Page_Init(object sender, EventArgs e)
{
IList<ListItem> list = new List<ListItem>();
list.Add(new ListItem(Resources.Site.OriginalStructure, "0"));
list.Add(new ListItem("5", "5"));
list.Add(new ListItem("10", "10"));
list.Add(new ListItem("15", "15"));
list.Add(new ListItem("20", "20"));
list.Add(new ListItem("25", "25"));
DropDownList1.DataSource = list;
DropDownList1.DataTextField = "Text";
DropDownList1.DataValueField = "Value";
DropDownList1.DataBind();
DropDownList2.DataSource = list;
DropDownList2.DataTextField = "Text";
DropDownList2.DataValueField = "Value";
DropDownList2.DataBind();
}
不起作用的方式(SelectedValue
始终是 ddl in 中的第一个值Page_Load
):
protected void Page_Init(object sender, EventArgs e)
{
var numberQuestionsPerPageDdlValues = new[]
{
new ListItem(Resources.Site.OriginalStructure, "0"),
new ListItem("5", "5"),
new ListItem("10", "10"),
new ListItem("15", "15"),
new ListItem("20", "20"),
new ListItem("25", "25")
};
DropDownList1.Items.AddRange(numberQuestionsPerPageDdlValues);
DropDownList2.Items.AddRange(numberQuestionsPerPageDdlValues);
}