[英]Bind SelectedValue of ASP.net DropDownList to custom object
目前,我在FormView中有一個DropDownList,數據綁定到ObjectDataSource。 這是DropDownList,它具有自己的數據源,該數據源返回部門列表:
<asp:DropDownList ID="DepartmentsList" DataSourceID="DepartmentsListDataSource" DataTextField="Name" SelectedValue='<%# Bind("Department") %>' runat="server" />
在FormView的數據源中,屬性Department被定義為:
public Department Department { get; set; }
在這種情況下,我得到以下異常:
'DepartmentsList'的SelectedValue無效,因為它在項目列表中不存在。 參數名稱:值
從邏輯上講,由於沒有在DropDownList上設置DataValueField,所以收到此異常。 問題是,如果我想將完整的(部門)選定對象數據綁定回FormViews數據源,DataValueField的值應該是什么?
謝謝。
我不知道是否可以將整個對象綁定為SelectedValue
。
您可以做的是將唯一標識符(例如ID)綁定到DataValueField
並通過其ID獲取對象。
另一種( 非常臟 )的解決方案是將所有相關屬性(例如,用“;”分隔)放入DataValueField
,並使用這些值構造您的對象...但是, DataValueField
,這確實很臟! ;-)
可以將一個對象分配給DataValueField,但是它不會“起作用”,因為您的對象將被強制轉換為字符串。 這意味着您所有綁定的選項都將具有相同的字符串值,該值可能是對象的類型,也可能只是對象的類型。 Pieter Nijs所說的一種方法可能是用字符分隔相關對象的屬性,但是就像他說的那樣,這很臟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.