选择要在DataGridView中显示的数据的首选方法是什么?
本文关键字:方法 是什么 数据 选择 DataGridView 显示 | 更新日期: 2023-09-27 17:49:17
我的代码:
private void LoadStudents()
{
Int64 gradeInstanceId = Convert.ToInt64(cmbGradeInstance.SelectedValue);
StudentInstanceRepository studentInstanceRepo = new StudentInstanceRepository();
var studentInstances = studentInstanceRepo.FindAll()
.Where(s => s.GradeInstanceId == gradeInstanceId);
StudentRepository studentRepo = new StudentRepository();
List<Student> students = new List<Student>();
foreach (var item in studentInstances)
{
students.Add(studentRepo.FindStudent(item.StudentId));
}
dataGridView1.DataSource = students;
}
当我直接将数据源设置为students时,将显示表中的所有列。例如,我只需要显示Name和LastName,它们都是Student类中的属性。
如何显示?谢谢!
编辑:
这在以前版本的表单中是有效的:
dataGridView1.DataSource = studentRepo.FindAll()
.Where(s => s.GradeParaleloId == gradeID)
.Select(s => new { Codigo = s.StudentId, RUDE = s.Rude, Nombre = s.Name + " " + s.LastNameFather + " " + s.LastNameMother, Telefono = s.Telephone });
FindAll()方法只是IQueryable的返回值。
为什么以前可以,而这个新代码不行?
试试这个:
dataGridView1.DataSource = students.Select(a=> new{a.Name, a.LastName}).ToList();
好吧,第一个版本有点偏离了目标(假设是ASP.NET)。在WinForms中,只需右键单击grid和"编辑列",并绑定到这个:
dataGridView1。DataSource = from s in studentInstanceRepo.FindAll()where s.GradeInstanceId == gradeInstanceIdselect new {s.Name, s.LastName};