2010-07-16 22 views
1

Je sais que dans ASP.NET (en parlant principalement de 2.0 ici) on peut définir une propriété sur un objet qui prend une collection de choses (un type énumérable je suppose est le déclencheur) et ensuite le référencer déclarativement. Par exemple:Syntaxe déclarative pour une collection de types de valeur dans ASP.NET?

<ObjectDataSource properties="blahblahblah"> 
    <SelectParameters> 
     <asp:Parameter /> 
    </SelectParameters> 
</ObjectDataSource> 

Il est la partie <asp:Parameter /> qui est la racine de ma question. Dire que je voulais une collection plus simple sur un type. Dites List<String> ou si les génériques sont absents, IntegerCollection ou StringCollection. Comment pourrais-je l'utiliser de manière déclarative? Est-ce que <string value=''> est autorisé, ou puis-je y mettre des valeurs brutes comme <StringCollection>string, string, string</StringCollection> ou quoi?

EDIT:

Je sens que je n'étais pas assez clair dans ma question. Je comprends que ObjectDataSource implémente sa propriété SelectParameters en tant que ParametersCollection, et que l'on peut utiliser cette propriété de manière déclarative (dans une page ASPX) pour configurer les types de paramètres dans cette collection. Ce que je me demande est si j'ai fait quelque chose comme StringCollection en tant que propriété sur un autre contrôle, existe-t-il une syntaxe (en ASPX) pour ajouter des chaînes à cette collection? Ou est-ce que je devrais définir une classe d'emballage comme la façon dont DropDownList prend ListItems pour remplir sa collection?

Répondre

1

J'ai finalement trouvé ce dont j'avais besoin pour cela. La réponse générale consiste à utiliser un attribut TypeConverter sur la propriété. Le GridView le fait avec (par exemple) DataKeyNames, en convertissant une liste de noms séparés par des virgules dans une chaîne en un tableau de chaînes.

1

Dans une source d'objet, le paramètre select fait référence à un paramètre dans une méthode qui renvoie une collection. Ce paramètre doit être quelque chose qui peut être converti à partir d'une chaîne, il ne peut pas être une collection ou un tableau.