Один gridview - два источника данных? - PullRequest
0 голосов
/ 31 октября 2008

Я работаю над сайтом сотрудников, и он по ошибке выложил сетку, которая показывает TypeID вместо TypeName. Я хочу поставить реальное ИМЯ типа, а не его произвольный идентификационный номер, как у него. Я вижу, что у него есть два "ObjectDataSource" на странице - один для типа и один для элемента. Элемент содержит идентификатор типа элемента, который находится в источнике данных «Элементы». Он тянет этот идентификатор, чтобы заполнить сетку. Я хочу использовать этот идентификатор, чтобы вытащить ИМЯ из другого источника данных и поместить это ИМЯ в вид сетки для этого конкретного столбца. Можно ли это сделать? Могу ли я использовать два разных источника данных в виде сетки?

1 Ответ

4 голосов
/ 31 октября 2008

Если я правильно понимаю, у вас есть два источника данных, которые делают это:

1) SELECT ID, Item, ItemTypeID FROM Item
2) SELECT ID, ItemType FROM ItemTypes 

И вы хотите, чтобы имя элемента и тип элемента отображались в вашей сетке.

Чтобы ответить на ваш фундаментальный вопрос, можете ли вы использовать оба источника в сетке: да. Но это не самый эффективный способ выполнения операции, так как вам нужно будет обойти второй источник данных для каждой строки в первой.

Лучшим способом было бы объединить два источника данных вместе и иметь только один.

Измените инструкцию SELECT для первого источника данных, чтобы он был таким:

SELECT i.ID, i.Item, t.ItemType FROM Item i INNER JOIN ItemTypes t ON i.ItemTypeId = t.ID;
...