簡體   English   中英

將ASP.net DropDownList的SelectedValue綁定到自定義對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM