2012-08-23 27 views
2

我使用ASP:ObjectDataSource進行網格數據綁定。Asp.net objectdatasource TypeName屬性錯誤

我的問題是當我運行這段代碼時出現錯誤。

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

錯誤消息

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

所以我將我的代碼,代碼隱藏站點。

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

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

現在所有東西都可以。這是工作。 但我想知道我的問題的實際解決方案。 爲什麼會引發錯誤?

其實,我不想將代碼移動到代碼隱藏層,如果它可以在設計層寫入。

每個建議將不勝感激。

回答

3

問題是您正在使用短類型名稱而不是完整類型名稱。

FolderName_CodeBehindClassName替換爲The.NameSpace.YouHaveYourTypeIn.FolderName_CodeBehindClassName, Name.Of.Your.Assembly

+0

我使用ASP.NET Web站點,它沒有程序集,甚至沒有名稱空間。那麼我該怎麼做? –

+0

省略組件。但是,我幾乎可以肯定你的班級在某個名稱空間中。 VB的問題是,即使你沒有代碼中的命名空間,也有默認的命名空間。看看項目屬性並找到一個文本框「默認命名空間」。 –

+0

相似問題:http://stackoverflow.com/q/15166016/153923 – jp2code