Как связать столбец таблицы Telerik с дочерним объектом данных, который является списком? - PullRequest
0 голосов
/ 13 августа 2010

У меня есть сетка, которая связывает несколько дочерних объектов данных со столбцами без проблем, используя синтаксис, определенный в http://www.telerik.com/help/aspnet-ajax/grdbindingtosubobjects.html.

Однако я не могу понять, как агрегировать дочерний объект, представляющий собой список или коллекцию. Например, если у меня есть объект Customer и я хочу получить первый адрес улицы клиента, я бы использовал DataField="Customer.Addresses[0].Street" на стандартном GridBoundColumn. Как я могу получить количество адресов? Я попробовал все виды полей данных GridCalculatedColumn и выражений, но безрезультатно. Я ищу что-то вроде этого:

Это не работает, конечно. Фактически, если я пытаюсь выполнить подсчет для любого поля данных с точками, я получаю исключение

" System.Data.SyntaxErrorException: синтаксическая ошибка в агрегированном аргументе: ожидание аргумента из одного столбца с возможным квалификатором 'Child'. "

Например, попытка использовать выражение Count({0}) с полями данных, для которых установлено значение Customer.FirstName (из которых есть только одно), вызывает исключение во время выполнения. Выполнение того же действия с полем данных без точек, например SendDate, не приводит к тому же исключению.

1 Ответ

2 голосов
/ 19 августа 2010

Похоже, вы уже получили ответ на этот вопрос на форумах Telerik , но для людей, которые могут наткнуться на этот вопрос в поисках ответа.

По существу RadGrid не поддерживает наличие коллекций в своих полях данных, и поддерживаемые типы привязываемых свойств можно найти здесь . Таким образом, с точки зрения этой агрегации вы можете либо выполнить вычисление по всей коллекции, прежде чем связать ее с RadGrid, и определить столбец агрегации, либо использовать нижние колонтитулы, как в этой демонстрации .

...