Кто-нибудь знает способ поделиться источником данных, не вызывая множественных обратных передач?

Например, у меня есть SqlDataSource, который загружает список элементов. В моей форме у меня есть 3 выпадающих списка, которые должны содержать один и тот же список значений, а затем пользователь может выбрать другое значение для каждого и сохранить.

При подключении каждого раскрывающегося списка к одному и тому же SqlDataSource база данных получает три обращения — по одному для каждого объекта, в котором он указан как источник данных. Если я уберу «автоматические» ссылки, которые вы найдете в интерфейсе SmartTag, мне все равно придется иметь код программной части, который будет вызывать DataBind для каждого из полей со списком, что снова вызовет три обращения к базе данных.

Я думаю, я мог бы вернуть значения в список строк, которые я храню в ViewState, но есть ли лучший способ?


person Sam Schutte    schedule 03.11.2008    source источник


Ответы (2)


Почему бы вам не включить кэширование для ваших источников данных?

person Keltex    schedule 03.11.2008
comment
Круто - это, кажется, исправлено. Я думал, что это уже было установлено, но я предполагаю, что это не так! Спасибо! - person Sam Schutte; 03.11.2008

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

person branchgabriel    schedule 03.11.2008
comment
Эй, спасибо за ответ с дополнительной дозой отношения - вы, очевидно, бог кодирования. Вопрос заключался в том, есть ли встроенный способ, которым Microsoft должна справиться с этим, вот и все. Вы ответили на вопрос тем, что я уже сказал в вопросе.... - person Sam Schutte; 03.11.2008