DevExpress Gridcontrol 在添加 repositoryItemLookUpEdit 后显示空列
DevExpress Gridcontrol shows empty column after adding repositoryItemLookUpEdit
我使用 'Visual Studio Express 2015 for windows' 和 .Net Framework 4.6 创建了 windows VB.Net 应用程序。
因为我在表单上使用了 Devexpress 19.1.6.0 Gridcontrol。
我想将学生详细信息绑定到 gridcontrol。
在 gridview 的 'Name' 列中,我想向 select 任何名称显示组合框以更新特定单元格。
为此,我使用了 repositoryItemLookUpEdit。
'Name' 列必须包含学生姓名。但是当我将 运行 程序时,然后 'Name' 列显示空单元格。为什么?如何克服这个问题?
此外,如果我将在不使用 repositoryItemLookUpEdit 的情况下实现相同的程序,那么所有列的正确数据都将绑定到 gridview,并且 'Name' 列也不会显示为空。
Form1.vb
Imports System.Data.SqlClient
Public Class Form1
Dim cn As SqlConnection = New SqlConnection("Data Source=PC161\SQLEXPRESS;Database=Student;Integrated Security=true")
Dim da As New SqlDataAdapter
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadGrid()
End Sub
Private Function FetchAllDetails() As DataTable
Dim dt As New DataTable
da = New SqlDataAdapter("select * from StudentInfo", cn)
da.Fill(dt)
Return dt
End Function
Private Function FetchIdName() As DataTable
Dim dt As New DataTable
da = New SqlDataAdapter("select ID, NAME from StudentInfo", cn)
da.Fill(dt)
Return dt
End Function
Private Sub LoadGrid()
Try
GridControl1.DataSource = FetchAllDetails()
RepositoryItemLookUpEdit1.DataSource = FetchIdName()
RepositoryItemLookUpEdit1.ValueMember = "ID"
RepositoryItemLookUpEdit1.DisplayMember = "NAME"
RepositoryItemLookUpEdit1.NullText = ""
RepositoryItemLookUpEdit1.PopulateColumns()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
Output after running the project
Output window after click on cell
Form1 Design
Added columns after click on 'Run Design' option on Gridcontrol
'In-place Editor Repository' option to add RepositoryItemLookupEdit
GridControl 的学生姓名列 (GridColumn2) 的 FieldName 属性 设置为 NAME。这可能是一个包含实际学生姓名的字符串值,这就是为什么当您不使用 RepositoryItemLookUpEdit 时单元格不为空的原因。
要在使用 RepositoryItemLookUpEdit 时显示学生姓名,您需要将 GridColumn2 的 FieldName 属性 更改为您用作 RepositoryItemLookUpEdit 的 ValueMember 的学生 ID 值。
简而言之,将 GridColumn2.FieldName 属性 值更改为 "ID" 即可。
我使用 'Visual Studio Express 2015 for windows' 和 .Net Framework 4.6 创建了 windows VB.Net 应用程序。 因为我在表单上使用了 Devexpress 19.1.6.0 Gridcontrol。 我想将学生详细信息绑定到 gridcontrol。 在 gridview 的 'Name' 列中,我想向 select 任何名称显示组合框以更新特定单元格。
为此,我使用了 repositoryItemLookUpEdit。
'Name' 列必须包含学生姓名。但是当我将 运行 程序时,然后 'Name' 列显示空单元格。为什么?如何克服这个问题?
此外,如果我将在不使用 repositoryItemLookUpEdit 的情况下实现相同的程序,那么所有列的正确数据都将绑定到 gridview,并且 'Name' 列也不会显示为空。
Form1.vb
Imports System.Data.SqlClient
Public Class Form1
Dim cn As SqlConnection = New SqlConnection("Data Source=PC161\SQLEXPRESS;Database=Student;Integrated Security=true")
Dim da As New SqlDataAdapter
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadGrid()
End Sub
Private Function FetchAllDetails() As DataTable
Dim dt As New DataTable
da = New SqlDataAdapter("select * from StudentInfo", cn)
da.Fill(dt)
Return dt
End Function
Private Function FetchIdName() As DataTable
Dim dt As New DataTable
da = New SqlDataAdapter("select ID, NAME from StudentInfo", cn)
da.Fill(dt)
Return dt
End Function
Private Sub LoadGrid()
Try
GridControl1.DataSource = FetchAllDetails()
RepositoryItemLookUpEdit1.DataSource = FetchIdName()
RepositoryItemLookUpEdit1.ValueMember = "ID"
RepositoryItemLookUpEdit1.DisplayMember = "NAME"
RepositoryItemLookUpEdit1.NullText = ""
RepositoryItemLookUpEdit1.PopulateColumns()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
Output after running the project
Output window after click on cell
Form1 Design
Added columns after click on 'Run Design' option on Gridcontrol
'In-place Editor Repository' option to add RepositoryItemLookupEdit
GridControl 的学生姓名列 (GridColumn2) 的 FieldName 属性 设置为 NAME。这可能是一个包含实际学生姓名的字符串值,这就是为什么当您不使用 RepositoryItemLookUpEdit 时单元格不为空的原因。
要在使用 RepositoryItemLookUpEdit 时显示学生姓名,您需要将 GridColumn2 的 FieldName 属性 更改为您用作 RepositoryItemLookUpEdit 的 ValueMember 的学生 ID 值。
简而言之,将 GridColumn2.FieldName 属性 值更改为 "ID" 即可。