2010-12-01 53 views
0

我們使用RadGrid控件從存儲庫中檢索用戶對象,該存儲庫使用NHibernate檢索對象。我使用定義爲對象的數據源:Telerik RadGrid綁定假設對象類型錯誤

<asp:ObjectDataSource ID="UsersData" runat="server" SelectMethod="GetAll" DataObjectTypeName="TestingApp.Lib.Domain.User" TypeName="TestingApp.Lib.Repositories.UserRepository"> 
</asp:ObjectDataSource> 

爲GETALL的方法簽名如下:

public IEnumerable<User> GetAll(); 

與NHibernate,一些用戶實際上延伸用戶AdminUsers。看來版本庫當前首先返回一個AdminUser對象,並且控件似乎假定剩下的對象將是AdminUser而不是User。這將導致以下異常被拋出:

"Unable to cast object of type 'TestingApp.Lib.Domain.User' to type 'TestingApp.Lib.Domain.AdminUser'." 

有沒有辦法來強制控制的假設數據綁定的對象是用戶,而不是管理用戶?謝謝!


後續

看來,radgrid控件以這種方式使用與NHibernate是不兼容,將無法正常工作。我們決定改用我們自己的解決方案。

+0

您使用的是哪個版本的.net框架? – jvanrhyn 2010-12-01 17:31:47

回答

0

玩魔術屬性MasterTableView.RetrieveDataTypeFromFirstItem看看是否有幫助。我認爲它應該設置爲false,或者如果設置爲true,則集合中的第一項應該是User類型(前提是AdminUser擴展了User類)。

相關問題