2017-09-21 1 views
0

Pour ASP.NET GridView:Y at-il benefitis sur l'utilisation d'un BoundField sur le champ modèle

Je veux savoir s'il y a des avantages sur l'utilisation d'un Boundfield sur le champ modèle.

Le seul avantage que je peux penser, est d'utiliser boundfield plus simple et il a besoin de moins de code. Je prévois de me débarrasser de tous les champs liés dans mon code et de les remplacer par des champs Template, principalement parce que je n'aime pas utiliser l'index de colonne codé en dur pour obtenir des valeurs du champ lié.

string name=GridViewCurrentRow.Cells[13].Text 

Je préfère utiliser la méthode FindControl("ControlID") de classe Row et ce semble être seulement faisable si j'utilise un champ de modèle.

Ai-je oublié quelque chose ou y a-t-il des préoccupations? Partagez s'il vous plait.

+0

Utilisez les champs Modèle si vous avez besoin d'un rendu différent de ce champ de colonne à la place du rendu par défaut (champs liés) – Legends

Répondre

-1

Cela fait la même chose que FindControl et ne nécessite pas de champs de modèle:

row.Cells[1].Controls[0] 

Après avoir créé la ligne et l'index GridViewRow:

int i = Convert.ToInt32(e.CommandArgument); 
GridViewRow row = grid.Rows[i]; 
+0

Si vous avez lu ma question, j'ai mentionné Je ne veux pas utiliser l'index. C'est le point principal. –

0

Vous pouvez utiliser FindControl("ControlID") avec les deux BoundField et TemplateField est une classe de GridViewRow et non les deux Fields.

Alors que sur d'autre part:

  • BoundField est utilisé lorsque vous souhaitez afficher uniquement le texte/données par défaut. TemplateField vous donne plus de contrôle sur la personnalisation de votre ligne de données dans GridView dans différents modèles et styles. Il vous permet plusieurs options de contrôles HTML et Web.

BoundField and TemplateField.

+0

Un champ lié qui est en lecture seule ne contient aucun contrôle. Par conséquent, vous ne pouvez pas utiliser FindControl. –

+0

oui c'est son seul usage pour l'affichage des données. le findcontrol lira les données des cellules. – AsifAli72090