C#: L'Ajout De Colonnes À Lié DatagridView Avec Le Code
//Pour obtenir des données à partir de cette Admin catégorie:
public static IQueryable<Student> GetStudents()
{
DojoDBDataContext conn = new DojoDBDataContext();
var query =
from s in conn.Students
join b in conn.Belts on s.BeltID equals b.ID
orderby s.LastName ascending
select s;
return query;
}
//Et sur mon formulaire:
BindingSource bs = new BindingSource();
private void fillStudentGrid()
{
bs.DataSource = Admin.GetStudents();
dgViewStudents.DataSource = bs;
dgViewStudents.Columns.Remove("ID");
}
Fonctionne parfaitement bien, mais plutôt que de retirer 20+ colonnes de données que je ne veux pas, je préfère suffit d'ajouter les quelques que je fais. De Plus, arriver à le nom de l'en-tête de titres est un bonus. Mais, l'ajout de méthode ne fonctionne pas pour moi:
private void fillStudentGrid()
{
bs.DataSource = Admin.GetStudents();
dgViewStudents.AutoGenerateColumns = false;
dgViewStudents.DataSource = bs;
dgViewStudents.Columns.Add("ID", "ID Number");
}
- Je obtenir le nombre approprié de lignes, et le titre de la colonne est correctement réglé... mais les lignes sont remplis avec les données vides.
En fait, ce n'est pas le droit de travailler, même avec la première fillStudentGrid() du code, il n'est pas de retourner les propriétés de la conn.Les ceintures de sécurité. Doh! Je peux le faire fonctionner avec un lambda de mettre la requête linq dans la forme, mais je vais essayer de garder les données de la logique distincte.
OriginalL'auteur mdvaldosta | 2010-04-15
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle vous êtes pas vu de données, c'est que vous n'avez pas réellement liée à la colonne de quoi que ce soit. Le nombre de lignes est déterminé par la liaison, et la grille sait qu'il y a de colonnes, il a besoin d'une ligne par élément de données, mais avec pas de colonnes, il ne montre rien. Lorsque vous ajoutez une nouvelle colonne, il apparaît dans toutes les lignes, mais il n'est pas automatiquement lié à votre source de données. Pour ce faire, vous devez définir la DataPropertyName sur la colonne avant de l'ajouter à la collection:
OriginalL'auteur Ari Roth
Étudiant les propriétés de classe peut également être repensé comme ça. Avec navigables de faux option, vous n'avez pas besoin de supprimer la colonne gridview.
OriginalL'auteur e133475
Vous pouvez également ajouter des colonnes à votre requête, même quand ils ne sont pas présents.
par exemple: sélectionnez employé, empname, 0 comme salaire from table_name
et lié à votre datagridview.
OriginalL'auteur SOS21