2009-03-22 9 views
0

Supposons que nous lions GridView à un contrôle ObjectDataSource, puis effectuons une requête. A) Je réalise que les champs GridView affichés sont de type String, mais est-ce que GridView sait également de quel type sont les valeurs de source de données sous-jacentes (pour une colonne GridView particulière)? * Ainsi, si la source de données remplit GridView avec un tas d'entiers, alors ces entiers devront être convertis en chaînes, avant qu'ils puissent être affichés dans GridView. Quel contrôle effectuera le contrôle de conversion, GridView ou ObjectDataSource/SqlDataSource? B) Indépendamment du fait que GridView ou ObjectDataSource effectue une conversion, comment cette conversion est-elle effectuée? Simplement en appelant ToString() sur un objet?

thanxQuel contrôle effectue la conversion de type: GridView ou contrôle de source de données?

Répondre

1

La mise en forme (qui comprend la conversion) est effectuée par le GridView. Vous pouvez voir cela en regardant la propriété DataFormatString par colonne. Cela utilise la mise en forme composite .NET générale, voir par exemple string.Format() ou Console.Writeline(). Il est par défaut à ToString(). Mais DataFormatString acceptera jj-mm-aaaa pour une colonne DateTime.

1

Heres le code de la commande de colonne relié (via réflecteur):

if (this.formatting.Length == 0) 
{ 
    return dataValue.ToString(); 
} 
return string.Format(CultureInfo.CurrentCulture, this.formatting, new object[] { dataValue }); 
  • this.formatting: La chaîne de format, ce qui est Henk a expliqué.
  • dataValue: Une variable d'objet dont est la valeur de la propriété liée
Questions connexes