![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
На странице стоит dataSourse1, выдает одну строчку из таблицы А, (ID и text) строка выбирается из таблицы А случайным образом.
второй dataSourse2 по идее должен на основании ID из dataSourse1 выбирать значения из другой, таблицы В. Ни как не могу понять как передать ID из dataSourse1 параметром для запроса в dataSourse2 :( Подскажите кто знает. |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
мне кажется тебе никак не обойтись без промежуточного поля|переменной. Если у тебя TypeName это бинарный код, тогда запиши один из результатов в сессию, а если TypeName ссылается на cs этой же страници, тогда запиши в какое-нибудь HiddenField и оттуда запрашивай параметр для второго ObjectDataSource с помощью ControlParameter у SelectParameters. Это мое ИМХО, возможно есть какой-нибудь другой способ, например SQL'евский JOIN и записывать этот результат записывать в одину таблицу что возвращает ОbjectDataSource, но скармливать их двух твоим web-controls
-------------------- |
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
Да, точно, понял, что без промежуточной переменной не обойтись. Но решил сделат совсем уж "по правильному" - сделать прмежуточные классы для таблиц, и натравить на них ObjectDataSource.
Только, блин, сложно все это с непривычки... так ломает за каждой строчкой в книги лезть. А без них ни как :( Если засовывать ID в HiddenField - это конечно вариант, с ним очень просто и удобно работать. Но по факту ID будет передаваться клиенту. Я не параноик, но все же, зачем это надо. Про JOIN тоже думал - но ни чего не придумал, так как это ведет к увеличению результирующих данных. Тоже, в принципе ни чего страшного, но хочется идиала. Во итоге, как и вы, пришел к переменной. Потом чего-то решил послать SqlDataSource в отставку и реализовать все на ObjectDataSource с промежуточными классами... В общем - дурная голова рукам покоя не дает :) Может есть какой пример классической организации промежуточного класса доступа к данным. А то у меня сомнения в том что я делаю :( |
|||
|
||||
Mymik |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
обойтись :о), сделай в SQL запросе JOIN и тогда все будет проще... видишь ли, когда ты делаешь первый SQL запрос, а потом второй запрос... у-у-у, ты создаешь и уничнотожаешь два пула к базе... я думаю создание, выполнение, удаление, и это два раза делается, гораздо медлительнее чем один пул, который сделает JOIN с твоего запроса и возвратить таблицу не из двух колонок, а из трех... В том свете, в котором вижу я, забрать немного лишней памяти (хотя это спорный вопрос, ведь когда ты делаешь второй пул, ты тоже занимаешь и процесорное время и память под новую таблицу...) ничего особо страшного не сделает.
Первый раз сложно, а потом все быстро и легко... я вообще только с ObjectDataSource и с рабочим классом для него работаю... Только у меня классы в бинарном виде :о)... секреты фирмы надо хранить от корявых рук заказчика :о)
Вот небольшой шаблон реализации тут с Paging="true" -->> Мой ObjectDataSource -->>
EnablePaging -- для реализации Paging, поумолчанию EnablePaging="false" и тогда SelectCountMethod не нужен TypeName -- класс на который ссылается ObjectDataSource SelectMethod -- метод для выборки данных(сначала вызывается SelectMethod, а после SelectCountMethod для пагинга(если нужен)) SelectCountMethod -- метод для реализации пагинга, возвращает int общего количества записей по запросу. SortParameterName -- сортировка Дальше идут передаваемые параметры при каждом действии (если нужны) SelectParameters и в нем ControlParameter ссылаются на TextBox на данной странице и забирают из них данные для SelectMethod Вот, а теперь сам класс -->>
Вот вроде бы и все :о) -------------------- |
||||||||
|
|||||||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
Ок, спасибо.
А как в вашем классе конструктор выглядит? Еще вопрос, а всякие там [DataObject(true)] и [DataObjectMethod(DataObjectMethodType.Delete)] вставлять не обязательно? Это сообщение отредактировал(а) dazy - 28.12.2006, 15:44 |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
dazy, А зачем там конструктор ??? :о) мне он там не нужен совершенно... у меня методы статические...
-------------------- |
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 4 Всего: 8 |
т.е. даже если класс не статический, но все его методы - статические, то конструктор не нужет, так?
а я почему-то думал что конструктор не нужет только если сам класс статический :) |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |