C# 动态Dropdownlist值未使用服务器标记显示
我目前正在使用此代码尝试在asp中填充我的下拉列表C# 动态Dropdownlist值未使用服务器标记显示,c#,asp.net,dropdownlistfor,C#,Asp.net,Dropdownlistfor,我目前正在使用此代码尝试在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();
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();
for(int i=0;i
但是,在使用SelectedItem或SelectedValue时,它总是显示为“我的列表为空”
我相信这是因为我在填充之前从一开始就声明了一个空列表
<h2>Please Select your Model:</h2>
<asp:DropDownList ID="ddl_Model" AppendDataBoundItems="True" runat="server" >
</asp:DropDownList>
请选择您的型号:
我可以知道如何从下拉列表中获得正确的值吗
提前感谢。这是ViewState问题。基本上,您的下拉列表在回发事件期间不保持状态。第一件事是检查您是否为页面启用了视图状态
<asp:Page EnableViewState="True" />
第三件事是使用debug,检查在调用ddl_Model.DataBind()代码之后是否调用ddl_Model.SelectedIndex。在哪个方法/事件期间填充ddl_模型?ddl_模型是否正确填充?何时检查ddl_模型是否具有SelectedItem/值?
if(!IsPostBack)
{
//your above code
}