Comment fusionner des colonnes en utilisant le contrôle Telerik RadGrid
-
26-09-2019 - |
Question
Je sais que je dois utiliser des colonnes de modèle, mais je ne comprends pas clairement comment l'utiliser.
J'ai une source de données qui retourne une collection, je peux attribuer à chaque propriété dans la collection à une colonne.
Mais comment puis-je:
- Fusionner deux colonnes? tels que
col.prop1 +' '+ col.prop2
? - Exécuter certaines méthodes sur les propriétés telles que
col.prop1.ToString(overloaded)
Un exemple simple codebehind vous aidera. Tout ce que je peux trouver sont des contrôles très complexes et des trucs pour des exemples ..
Merci.
La solution
Vous pouvez également utiliser des colonnes calculées
<telerik:GridCalculatedColumn HeaderText="Test" UniqueName="Test" DataType="System.String"
DataFields="Field1, Field2" Expression='{0} + " - " + {1}'></telerik:GridCalculatedColumn>
Autres conseils
En supposant que vous pouvez modifier la classe qui est utilisée dans la collection, je ferais une propriété « d'affichage ».
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string PropertiesFormatted
{
get
{
return this.Prop1 + " - " + this.Prop2;
}
}
Vous pouvez ensuite attribuer cela à une colonne liée. Je trouve que c'est mieux, car vous ne serez pas à vous soucier d'avoir la mise en forme différente dans différents domaines du logiciel. Fondamentalement, il permet de les réutiliser.
L'autre façon de le faire serait de créer en effet une colonne de matrice et en utilisant les expressions de liaison. Vous pouvez en savoir plus sur la liaison de données expressions soit sur MSDN ou dans l'aide de Telerik, mais vous allez vouloir faire quelque chose comme ceci:
<telerik:GridTemplateColumn UniqueName="TemplateColumn">
<ItemTemplate>
<span><%# DataBinder.Eval(Container.DataItem, "Prop1") %> - <%# DataBinder.Eval(Container.DataItem, "Prop2") %></span>
</ItemTemplate>
</telerik:GridTemplateColumn>
EDIT Voici une URL qui vous permettra de regarder des trucs de modèle Grille: http: / /www.telerik.com/help/aspnet-ajax/grdcustomizewithgridtemplatecolumn.html
La seule façon qui me vient à l'esprit est de d'utiliser des expressions de liaison pour les propriétés et le code-behind méthodes qui renvoient les résultats des méthodes de propriété par ces expressions de liaison.