2010-08-04 3 views
0

У меня есть три класса (домен, роль и пользователь). Домен и роль является свойством пользовательского класса, как это:Связывание объектов с Gridview

public int UserID { get; set; } 
    public string UserName { get; set; } 
    public Domain Domain { get; set; } 
    public Role Role { get; set; } 
    public bool Active { get; set; } 

домена и роль просто имеют свойство ID и свойство Name.

Я хотел бы привязать список пользователей к моему виду сетки, но показывая имя домена. В настоящее время у меня есть связанные поля, как это:

<asp:BoundField DataField="Domain.DomainName" SortExpression="UserDomain" ReadOnly="True" HeaderText="User Domain" /> 

Но это не будет работать, давая ошибки парование: DataBinding: 'Yasur.Business.Entities.User' does not contain a property with the name 'DomainName'.

Что такое лучший способ сделать это?

Педро Dusso

+0

я не думаю, что вызывает ошибку, пожалуйста, напишите код «User» лица –

+0

, но я уже это сделал, вот и все мои классы User ... просто пропущен публичный класс User {...} –

+0

Опубликуйте код, в котором вы привязываетесь к источнику данных Gridview –

ответ

0

Я не думаю, что вы будете в состоянии сделать двухстороннюю привязку данных с объектом, как это. Вы можете «Eval» данные, если вы используете TemplateField с синтаксисом, как это (не тестировался):

<asp:TemplateField> 
<ItemTemplate> 
    <asp:Label ID="Label1" runat="server" Text='<%# ((Domain)Eval("Domain")).DomainName %>' /> 
</ItemTemplate> 

Смежные вопросы