2009-10-22 9 views
0

J'ai un gridview.Datasource = someDatatableGridView Afficher 4 sur 10 colonnes avec en-têtes personnalisés

Je veux montrer 5 sur 10 colonnes avec comme FirstName « Prénom »

est-il un moyen rapide de le faire au lieu de nous en utilisant les fonctions itembound?

Une autre chose est .. Je mets quelques champs asp: bound mais alors le champ de source de données vient encore en addittion à mes champs de databound.

Une suggestion?

+0

Merci pour cette propriété et vos réponses. Je veux ajouter une case à cocher devant les lignes aussi. ou mon propre contrôle. ne me permettra pas de le faire. En somme, j'aurais besoin d'un mélange de champs liés et d'une case à cocher personnalisée ou d'un autre contrôle. Cette combinaison est-elle possible? – LibraRocks

+0

Oui - vous pouvez utiliser un objet TemplateField pour ajouter une case à cocher à chaque ligne. –

+0

Merci cela a fonctionné. – LibraRocks

Répondre

1

Une autre chose est .. Je mets quelques asp: champs liés mais le champ DataSource viens encore addittion à mes champs databound.

Programmable propriété

<asp:GridView AutoGenerateColumns="false"></asp:GridView> 

et après cette colonne de jeu que vous souhaitez présenter comme des champs databound.

+0

J'ai raté ce sujet de la question. + 1 pour donner le "reste de la réponse". – David

+0

Merci pour cette propriété et vos réponses. Je veux aussi ajouter une case à cocher devant les lignes. ou mon propre contrôle. ne me permettra pas de le faire. En somme, j'aurais besoin d'un mélange de champs liés et d'une case à cocher personnalisée ou d'un autre contrôle. Cette combinaison est-elle possible? – LibraRocks

+0

Vous pouvez essayer: puis dans grd_RowDataBound vide (expéditeur d'objet, GridViewRowEventArgs e) {if ((e.Row.RowType == DataControlRowType.DataRow) && (e.Row.RowIndex> -1)) { MyCtr ctr = (MyCtr) e.Row.Fin dControl ("ctrId"); TextBox tb = (TextBox) e.Row.FindControl ("tb"); } } – Kate

0

Une approche serait d'utiliser TemplateColumns au lieu de BoundColumns

Une autre idée serait de le faire dans le code-behind après la DataBind() est appelée.

... 
myGridView.DataBind(); 
myGridview.Columns[0].Visible = false; 
myGridView.Columns[1].HeaderText = "First Name"; 

Personnellement, j'aime l'approche TemplateColumn. Je ne suis presque jamais ce que le concepteur de drag and drop me donne sans au moins quelques modifications.

Edition - a ajouté

J'ai raté la partie de la question où les colonnes sont automatiquement l'ajout. Comme d'autres ont répondu, cela peut être résolu en définissant AutoGenerateColumns = false sur GridView.

2

D'abord pour corriger ceci: J'ai mis des champs asp: bound mais le champ de source de données vient encore s'ajouter à mes champs de données. Vous devez définir:

AutoGenerateColumns = False 

Ensuite, si vous utilisez des colonnes liées, vous pouvez définir la HeaderText pour chaque colonne à ce que vous voulez.

+0

+1. Répondu correctement aux deux parties de la question. – David

Questions connexes