我目前正在使用此代码尝试在asp中填充我的下拉列表。
for (int i = 0; i < items.Count; i++)
{
models.Add(i+1, items.ElementAt(i).model);
}
ddl_Model.DataTextField = "Value";
ddl_Model.DataValueField = "Key";
ddl_Model.DataSource = models;
ddl_Model.DataBind();
但是,在使用SelectedItem或SelectedValue时,它总是显示为我的列表为空。
我相信这是因为我在填充之前从一开始就声明了一个空列表。
<h2>Please Select your Model:</h2>
<asp:DropDownList ID="ddl_Model" AppendDataBoundItems="True" runat="server" >
</asp:DropDownList>
我可以知道如何从下拉列表中获取正确的值吗?
提前致谢。
答案 0 :(得分:0)
这是ViewState问题。在PostBack事件期间,您的下拉列表基本上不会保留状态。首先要检查是否已启用页面的视图状态。
<asp:Page EnableViewState="True" />
第二件事是检查填充下拉列表的位置。如果你在页面加载事件中绑定,那么确保它是否在!IsPostBack下面
if(!IsPostBack)
{
//your above code
}
第三件事是使用debug,检查在调用ddl_Model.DataBind()代码后是否调用ddl_Model.SelectedIndex。