我需要在Full Name
中显示名为DataGridView
的列,但DataSource (datatable)
没有FullName
列。它只有FirstName
和LastName
列。我正在设置我的DataGridView
:
Dim column As DataGridViewColumn = New DataGridViewTextBoxColumn()
column.DataPropertyName = "?" //Need FirstName + " " + LastName
column.Name = "FullName"
dgv.Columns.Add(column)
如何设置DataPropertyName
以使用数据表中FirstName
和LastName
列的数据。?
感谢。
答案 0 :(得分:4)
使用另一种方法。将计算列添加到数据表中。
Dim dc as DataColumn = dt.Columns.Add("FullName", System.Type.GetType("System.String"))
dc.Expression = "FirstName + ' ' + LastName"
其中dt是您设置为DataGridView的DataSource的数据表。
此计划列中使用的表达式语法的规则可在此 link on MSDN找到。
同样的规则也适用于另一种非常有用的方法: DataTable.Select(filterExpression) 方法
答案 1 :(得分:1)
我认为这不是DataPropertyName
的工作方式。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.datapropertyname.aspx
在数据库方面执行此操作。在您的选择(此处为SQL Server语法)中,执行FirstName + " " + LastName as FullName
,您将获得FullName列而不是两列。
如果您无权访问SQL端,则可以操纵DataTable
并在代码中创建自己的FullName
列。我想一些LINQ和/或循环应该可以解决问题。