2012-08-23 2 views
2

J'utilise ASP:ObjectDataSource pour la liaison de données de grille.Asp.net objectdatasource Erreur de propriété TypeName

Mon problème est que lorsque j'exécute ce code, j'obtiens une erreur.

<asp:ObjectDataSource ID="odsListing" 
runat = "server" 
SelectMethod = "MethodNameOfCodeBehindClass" 
TypeName = "FolderName_CodeBehindClassName" ></asp:ObjectDataSource> 

Message d'erreur

The type specified in the TypeName property of 
ObjectDataSource 'odsListing' could not be found. 

Je propose donc mon code sur le site codebehind.

#region ObjectDataSource for Grid Binding 
    Type type = typeof(FolderName_CodeBehindClassName); 
    string assemblyQualifiedName = type.AssemblyQualifiedName; 

    odsListing.TypeName = assemblyQualifiedName; 
    odsListing.SelectMethod = "ListingDatabind"; 
    #endregion 

Maintenant Tout va bien. C'est du travail. Mais je voudrais savoir la solution réelle pour mon problème. Pourquoi cela provoque-t-il une erreur?

En fait, je ne veux pas déplacer mon code vers la couche codebehind s'il peut écrire au niveau de la couche de conception.

Toutes les suggestions seront appréciées.

Répondre

3

Le problème est que vous utilisez un nom de type court au lieu du nom de type complet.

Remplacez FolderName_CodeBehindClassName par The.NameSpace.YouHaveYourTypeIn.FolderName_CodeBehindClassName, Name.Of.Your.Assembly.

+0

J'utilise le site Web ASP.NET qui n'a aucun assembly et même aucun espace de noms. Alors, comment pourrais-je le faire s'il vous plaît? –

+0

Omettez l'assemblage. Cependant, je suis presque sûr que votre classe est dans un espace de noms. Le problème avec VB est que même si vous n'avez pas d'espace de noms dans le code, il y a l'espace de noms par défaut. Jetez un coup d'oeil aux propriétés du projet et trouvez une zone de texte "espace de noms par défaut". –

+0

Question similaire: http://stackoverflow.com/q/15166016/153923 – jp2code

Questions connexes