用列表绑定DropdownList?

时间:2017-03-21 16:07:02

标签: c# asp.net

        var list1 = dbContext.TruckTypes.Where(s => s.Status == "Active").ToList();
        aTypeDropDownList.DataSource = list1;
        aTypeDropDownList.DataTextField = "Name";
        aTypeDropDownList.DataValueField = "Id";
        aTypeDropDownList.DataBind();

错误:附加信息:' aTypeDropDownList'具有一个无效的SelectedValue,因为它在项目列表中不存在。

公共部分类TruckType     {         [System.Diagnostics.CodeAnalysis.SuppressMessage(" Microsoft.Usage"," CA2214:DoNotCallOverridableMethodsInConstructors")]         public TruckType()         {             this.Requests = new HashSet();             this.Trucks = new HashSet();         }

    public int Id { get; set; }
    public string Name { get; set; }
    public double Height { get; set; }
    public double Width { get; set; }
    public int MaxCapacity { get; set; }
    public string ImagePath { get; set; }
    public double LPriceKM { get; set; }
    public double MPriceKM { get; set; }
    public string Status { get; set; }
    public string CreatedBy { get; set; }
    public System.DateTime CreatedOn { get; set; }
    public string UpdatedBy { get; set; }
    public Nullable<System.DateTime> UpdatedOn { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Request> Requests { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Truck> Trucks { get; set; }
    public virtual User User { get; set; }
}

2 个答案:

答案 0 :(得分:1)

对具有数据库绑定值的SelectedValue执行DropDownList时,请确保您设置的值实际位于列表中。

示例,您的列表包含:

<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

然后你执行SelectedValue = "8",这会导致错误,因为值8不在列表中。

我真的希望你理解

答案 1 :(得分:0)

最后我弄明白了这个问题。 aTypeDropdownLis.text = string.Empty;

我在代码中推出了这一行。 删除后,程序正常工作。