[英]DevExpress XtraGrid ExportToXlsx showing checked/unchecked for RepositoryItemCheckEdit instead of checkbox images
[英]How to implement multiple cell selection using RepositoryItemCheckEdit in Devexpress XtraGrid?
在選擇下一個單元格的選中狀態后,Devexpress網格視圖存儲庫的選中狀態會立即自動取消選擇。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ConnectDatabase()
loadv()
End Sub
Private Overloads Sub loadv()
Dim DataAdapter5 As New MySqlDataAdapter
Dim DataSet1 As New DataSet
DataSet1.Clear()
Dim str1 As String = String.Format("SELECT `id`, `Name` FROM `mydb`.`mytable` ORDER BY Name ")
DataAdapter5 = New MySqlDataAdapter(str1, conn)
DataAdapter5.Fill(DataSet1)
' GridControl1.RefreshDataSource()
' GridControl1.Refresh()
GridControl1.DataSource = DataSet1
With GridControl1
.DataSource = DataSet1.Tables(0)
End With
GridView1.BestFitColumns()
End Sub
這是我的網格視圖:
這是基礎數據庫表:
如何對Passed
和ResultsPending
列實施多個單元格選擇?
因此,您有兩列帶有Passed
和ResultPending
復選框,但僅從數據庫中加載ID
和Name
。 因此,您的2個復選框列未綁定到數據。 它們稱為未綁定列 。
您必須自己維護未綁定列的狀態。
因此,在設置復選框后,您還需要在代碼隱藏的某處(某種形式的List
)中記錄它的狀態,然后在重新繪制表單時,需要將選中的狀態數據提供回網格。
要實現這一探索:
希望這可以幫助。
然后使用屬性將綁定源分配給網格控件。 現在,我需要將數據集表的列綁定到網格視圖的列。 您可以通過打開“網格設計器”來實現。 單擊列(主視圖)->選擇列,然后為每個列分配字段名。 您可以在“文件列表”中查看表列,在“列”組中查看Gird視圖的列。 這是我的代碼:
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ConnectDatabase() loadView() End Sub Private Sub loadView() Dim enumerator As IEnumerator = Nothing dsOnDesign.Tables(0).Clear() Dim dataSetTemp As System.Data.DataSet dataSetTemp = New DataSet Dim da As New MySqlDataAdapter Dim str As String = "SELECT id, name, passed, resultPending FROM mydb.mytable" da = New MySqlDataAdapter(str, conn) da.Fill(dataSetTemp) Try enumerator = dataSetTemp.Tables(0).Rows.GetEnumerator() While enumerator.MoveNext() Dim current As DataRow = DirectCast(enumerator.Current, DataRow) Dim i As DataRow = Me.dsOnDesign.Tables(0).NewRow() i("ID") = Conversions.ToInteger(current(0)) i("Name") = current(1).ToString() i("Passed") = If(current(2) Is DBNull.Value, False, fbool(CBool(current(2)))) i("ResultPending") = If(current(3) Is DBNull.Value, False, fbool(CBool(current(3)))) dsOnDesign.Tables(0).Rows.Add(i) End While Finally If (TypeOf enumerator Is IDisposable) Then TryCast(enumerator, IDisposable).Dispose() End If End Try GridControl2.DataSource = dsOnDesign.Tables(0) End Sub Private Function fbool(ByVal bool As Boolean) As Boolean If bool = True Then Return True Else Return False End If End Function End Class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.