當我在ASP.NET 4調用DataBind()
上一個DropDownList,它拋出一個ArgumentNullException:ArgumentNullException時的DataBind()呼籲DropDownList的
System.ArgumentNullException:值不能爲空。參數名稱:在System.Web.UI.DataBinder.GetPropertyValue(對象 容器,字符串PROPNAME)在 System.Web.UI.DataBinder.GetPropertyValue(對象容器,字符串 PROPNAME,字符串格式)在 的System.Web 容器在 System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs的).UI.WebControls.ListControl.PerformDataBinding(IEnumerable的 的dataSource)在 System.Web.UI.WebControls.ListControl.PerformSelect()在 的System.Web .UI.WebControls.BaseDataBoundControl.DataBind()at MyNamespace.MyClass.MyFunction()
這是我的代碼:
myDropdown.Items.Clear();
myDropdown.ClearSelection();
myDropdown.Items.Add(new ListItem("-Select-", "-1"));
myDropdown.DataSource = myDataSource; //List<T> of my business objects
myDropdown.DataBind();
我發現this forum post這似乎暗示帶走的下拉列表中,這是我在標記已經設置DataValueField和DataTextField設置。當我做到這一點,我的代碼的第二到最後一行改成這樣,所以我仍然得到有意義的文本中的選項:
myDropdown.DataSource = myDataSource.Select(elem => new ListItem(elem.Text, elem.Id));
...它仍然無法正常工作。但是,當我刪除添加「-Select-」選項的行時,它確實有效。只有在數據綁定之前沒有選擇元素時纔會中斷。
發生了什麼事?
'List'持有什麼?檢查它是否爲空? –
Rahul
@Rahul - 請參閱下面的答案。我找到了導致錯誤的原因。現在的原因是一個謎。 –