![]() |
|
Модераторы: gambit |
![]()
|
|
| StepS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
Всем привет, возник вопрос, явного ответа найти не смог.
есть контрол:
как такой контрол можно разместить на странице aspx ? как задать используемый тип T ? т.е. что-то типа:
|
||||
|
|||||
| Mymik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
задается через where
В каком смысле ??? ты хочешь чтобы это был как отдельный контрол ??? тогда переопределяй Render метод и(или) OnPreRender. Там ты и будешь создавать свой контрол. После чего ты в файле твоего aspx прописываешь
B непосредственно на страницы вызываешь
Ну и передаваемые параметры если ему там это нужно все. -------------------- |
||||||
|
|||||||
| StepS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
сорри, может я не правильно выразился.. вопрос "как задать используемый тип T?" был к тому как указать этот тип на странице при использованиии самого контрола. Например тот контрол, кот я привел выше, нужно разместить на страницу (aspx).
Как это сделать, т.е. использовать generic контрол на странице ? сорри за тавтологию P.S. Как делать register и т.д. я в курсе. |
|||
|
||||
| SpaceSpace |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 3 Всего: 10 |
StepS
жесть давай вместе подумаем, только если додумаемся - не забуть поделиться - тоже юзать буду!!! Мысли следующие: 1. делать контрол-оболочку у котрого есть паблик свойство, куда из ascx передаешь тот объект, который generic T
2. Этот контрол - оболочка динамически генерит и запихивает в себя нужный контрол для этой цели я думаю подойдет
Ну это то, что сразу всплыло, а так тема далеко не тривиальная Сам как считаешь? Дальше будем думать? -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||
|
|||||
| StepS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
ок. Давай думать.
Твой вариант нужно попробовать. Есть такой вариант: Если нужет тип Int делаем контрол:
на странице этот контрол уже можно использовать.
Минус в том, что для каждого типа нужно писать пустой класс оболочку, просто для того чтобы его использовать. Это сообщение отредактировал(а) StepS - 23.5.2007, 11:22 |
||||
|
|||||
| SpaceSpace |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 3 Всего: 10 |
hI ALL
вот наклюнулось решение, продолжение моей мысли, высказанной ранее Вот у нас есть класс-оболочка
Ну а asp пишем в свойство тип, и... оп-ля Вот у нас есть generic контрол
Сразу оговорюяь, что написал криво, просто показываю РЕАЛИЗУЕМОСТЬ данного подхода Предлагаю всем сочувствубщим присоединяться и изложить свои соображения по качеству и оптимизации кода в частности это касается унификации использования типов, и зоздания их инстансов -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
||||
|
|||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
А можно задать вопрос........ а где это можно использовать ??? В своей не столь длинном сроке работы в asp.net сфере я только один раз создал контрол, который в зависимости от передаваемого в него значение изменял свой вид... И это было только лишь bool значение.
Вы же, как я понимаю, хотите засунуть весь сайт в один контрол, так ??? Типа при одном значении отображать один контрол, при другом второй контрол... ну и так далее. Мне просто хочется понять где такой хитрый трюк можно вообще использовать... Добавлено через 1 минуту и 44 секунды А чем вам не нравится PlaceHolder ??? -------------------- |
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 3 Всего: 10 |
Mymik
В данном случае, не ведется разговор о манипуляции представлениями, а как отмечал StepS,
речь о манипуляции данными. хотя... можно манипулировать и представлениями. Я об этом писал в топике Динамическое создание сложных(составных) контролов идею, к сожалению не поддержали... жесть, Mymik молодец -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
я в этой жизни чего не понимаю Я как обычно, банально, не понимаю где это можно применить и как это можно применить... -------------------- |
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 3 Всего: 10 |
Mymik, если меня поймеш - ставь мне плюс, не поймеш - ставь минус.
НАПРИМЕР P.S. хотя правильней было бы спросить того, кто начал тему, а мне щас минус влепят ни за что У тебя есть 3 модели(класса), все они храняться деревом Пусть это будут: подразделения предприятия(явно дерево) Иерархия сотрудников(кто под кем, тоже дерево), ну и .... категории технологий(типа в .NET есть С# и CLR и т.д...) Воот. тебе нужно вывести их на экран деревом. Методы для вывода деревом,Обработка узлов... и т.д. у тебя написаны ОДИН раз, они generic Например у тебя есть Page , который сын MasterPage,в котром есть ContentPlaceHolder, ты предлагаешь юзать то, что нам дают свыше, от всемогущего мелкософта, Как минимум, придется создать 3 Page'а, для каждого типа деревьев, ну +3 контрола естественно Что в этом плохого, я знаю, что ты спросишь. НИЧЕГО!!!. Привык делать так, потому что быстро? удобно? Я с тобой согласен!!! Я сам так делаю. НО. Ведь можно что-то изменить, усовершенствовать. Мне кажется, я в этом уверен. Что шаблонами надо пользоваться. Желательно везде. Что я опять не так сказал? -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| StepS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
SpaceSpace пример привел, хороший. Т.е. идея в том, чтобы сделать контрол, который работает с раным типом данных, например:
List<int>, List<MyClass>, List<YourClass> и т.д. Если делать без generic нужно ставить много проверок на типы вроде:
при таком подходе, если появляется новый тип данных - нужно залезать в контрол и дописывать еще один if. т.е. на лицо преимущество generic-ов. Это сообщение отредактировал(а) StepS - 24.5.2007, 12:15 |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
SpaceSpace, эх, пример классный, даже хотел было ставить плюс, но не хочется ставить плюс тому человеку, который рассказывает о хорошей идеи, но не использует ее. Вот вторая часть завалила все... не надо было перечеркивать свои же слова.
Ну а если по теме... для этого существует мощный ADO.NET. В частности DataSet и INamingContainer... передали tamplate и не паримся... Всегда можно найти другой путь ;о) -------------------- |
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 3 Всего: 10 |
Mymik
Я же всеми силами пытаюсь распространить свою идею! просто у меня в отделе полно таких же как ты, ленивых, но шибко рациональных Я по мере сил, пытаюсь. Изложу все на бумаге, аргументирую, потом посмотрим... Все новое и непривычное обычно встречается жуткой критикой и непониманием 2StepS Так что насчет реализации? Как ты решил делать? Обещал поделиться -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| StepS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
2Mymik
Дело все в том (от куда возник данный вопрос), что в данном случае идет оптимизация (рефакторинг) уже существующего проекта и все эти структуры List<...> уже написаны. То что нужно использовать DataSet -ы это я согласен, но пределака на DataSet-ы сильно дорогА для проекта. Вот и возникла мысль написать generic 2SpaceSpace В моем случае, я уже написал обертки для каждого контрола и их использую (т.е. мой подход), но если мне встретиться еще такая задача, та я скорее всего пойду по твоему пути, чтобы не множить классы. Было бы время и деньги переписал бы... но за неимением сего, сильно шиковать не приходиться. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |