2013-03-24 2 views
0

У меня есть Gridview с колонкой Quantity. Каждый продукт имеет собственное количество. Мне нужно показать столько строк, сколько указано.Повторите ряд несколько раз в gridview

Например, если у меня есть

Car | 4 | $ 20 

мне нужно показать 4 строки, как

Car | 1 | 20 

Я не могу найти способ сделать это. Я использую linq для извлечения данных из базы данных, и это DataSource моего Gridview.

+0

Можете ли вы показать код, который у вас есть до сих пор? – Tim

ответ

1

Вы можете сделать это, используя метод linq Range. Если у вас есть источник Linq, как это (тривиальный пример)

var result = 
    from r in db.SourceTable 
    select new { r.Name, r.Quantity, r.Price }; 

Добавьте к этому запросу

var result = 
    from r in db.SourceTable 
    from s in Enumerable.Range(1, record.Quantity) 
    select new { r.Name, 1, r.Price }; 

Однако, это, вероятно, не поддерживается структуры объекта (и, вероятно, не в какой-либо другой ORM) поэтому вам может потребоваться сначала позвонить .ToList() или .AsEnumerable().

+1

Вам почти не нужно вызывать 'ToList()', если вам не нужен индексный доступ. 'AsEnumerable' выполнит одно и то же, не теряя память и заставляя итерацию всей последовательности. – Aaronaught

+0

@Aaronaught Noted. –