Привязать объект, который имеет свойство типа List <> к повторителю - PullRequest
1 голос
/ 20 декабря 2010

Я создал два класса в бизнес-слое.

первый называется Users со свойствами id (int), pass (string) и привилегий (Privilege), а второй называется Privilege и имеет свойства id (int) и privilegeName (string).

У меня есть метод, который возвращает всех пользователей, и я использую повторитель (на самом деле я связываю его с DataList для автоматического создания ItemTemplate для меня, а затем использую повторитель), и он работает и отображает все свойства, кроме для моего свойства List. вместо этого он генерирует что-то вроде этого System.Collections.Generic.List`1 [WebApplication2.Public.BLL.Users]

Я хочу отобразить его дружественным способом, таким как «Права пользователя: Privi1, Privi2», но все же я хочу сохранить слои моего приложения чистыми и структурированными, например, я не буду хранить их в базе данных в той же самой таблицу и просто сохранить их как текст и добавить его.

Я надеюсь найти простое и хорошее решение ... Заранее спасибо, ребята =)

PS: я не хочу отображать объект Privilege, я хочу отобразить privilege.privilegeName

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

При использовании повторителей существует два подхода, один из которых предложен Bugai13: иметь настраиваемое свойство, которое отображает его.Это хорошо для определенных типов вложенных данных.

Другой вариант - просто установить ретранслятор внутри ретранслятора и привязать его соответствующим образом (к тому, что будет списком, назначенным вашему основному объекту данных, в зависимости отвы работаете с O / R Mapper).

У вас может быть код для пользовательского свойства отображения не в модели данных, а где-то на уровне представления (в зависимости от вашей структуры / дизайна), так что это не "Плохая вещь, чтобы сделать это.Это зависит от вас, с тем, что "чувствует" лучше.

0 голосов
/ 20 декабря 2010

Просто создайте свойство на вашем объекте Bussiness и привяжите его:

public string PrivilegiesString
{
   get
   {
     var sb = new StringBuilder("User Privileges : ");
     foreach(var item in privileges)
     {
       sb.AppendFormat("{0}, ",item.privilegeName);
     }

     return sb.ToString();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...