我正在使用Delphi 6,並且我想要一個帶有多選的數據庫綁定列表框。我發現了三種列表框:TListBox
,TDBListBox
和TDBLookupListBox
。在Delphi 6中綁定到數據庫的多選列表框
至於我能理解,TListbox
不綁定到數據庫。 TDBListBox
和TDBLookupListBox
不能被多選。
有沒有辦法讓多選列表框綁定到數據庫?
我正在使用Delphi 6,並且我想要一個帶有多選的數據庫綁定列表框。我發現了三種列表框:TListBox
,TDBListBox
和TDBLookupListBox
。在Delphi 6中綁定到數據庫的多選列表框
至於我能理解,TListbox
不綁定到數據庫。 TDBListBox
和TDBLookupListBox
不能被多選。
有沒有辦法讓多選列表框綁定到數據庫?
與數據綁定組件的問題是,他們依靠數據源和數據源只有一個光標。這可能是爲什麼。
順便說一下,你需要改變數據嗎?否則,您可以從數據集中填充正常的列表框。甚至使用不可見的數據列表框並將內容複製到正常的列表框。
據我所知。
標準是您提供的列表中有一堆值,其中1代表當前記錄。
除非你有一個多值字段(針對最佳實踐),否則我無法看到你如何多選...
或者你可能想要的其實是一個子表?
在你有兩種不同的方式綁定到數據的選項TDbLookupListBox;首先您可以將列表綁定到數據集(ListSource/ListField/KeyField),然後您可以將選定項綁定到另一個數據集(DataSource,DataField)中的字段。想要將項目列表綁定到數據集,然後手動管理多個選擇,沒有任何概念錯誤,但是我認爲在沒有創建子類化和啓用所需的控件樣式的情況下,當前實現並不可行。
DevExpress TcxDBListBox支持多選。我使用綁定到數據庫的多選下拉複選框,這很好。
這些組件具有您可以實現的轉換爲和從您的列表轉換的方法; EditValueToStates和StatesToEditValue。雖然我存儲的數據未經過標準化(我存儲了分號分隔的版本號列表),但我在該字段上創建了全文搜索索引,並以分號作爲分隔符,現在我仍然可以執行優化搜索在那個領域。
根據弗朗索瓦您的意見,我會用一個正常的TListBox和編寫代碼來所有不同值插入到列表中,然後自己處理多選擇值。 Jeremy的解決方案也可行,DevExpress Express Quantum Grid有一個很好的過濾系統,甚至可以爲您節省一些其他的編程。
您可以創建一個從TCustomListBox下降自己的自定義列表框組件,添加一個數據源屬性列表,並用作容器來保存選定值其他屬性,如字符串列表。然後,您可以使用按鈕單擊將更改發佈到數據庫。
如果你撥弄一些的TDBGrid中的選項,並限制其顯示的列,可以使一些看起來完全就像一個列表框。嘗試將Options屬性設置爲[dgTitles,dgTabs,dgRowSelect,dgAlwaysShowSelection,dgCancelOnExit,dgMultiSelect]並從那裏開始工作。
我想爲表格創建一個過濾器,並且列表框是過濾條件之一。我想用數據庫中的表格填充列表框。 – Blue 2008-10-28 19:44:47