Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
не получив ответа на свое предидущее сообщение в форуме, я как и ожидал натолкнулся на проблему в двух концах: Вообщем вопрос мой заключался в том, как сделать один справочник на всю базу данных. Иными словами его можно интерпретировать по другому : "Что нужно сделать, чтобы программа была написана в одном месте(будь то файл, представление, код, или юзер контрол - не знаю пока, в этом и заключается мой вопрос). Потратив все воскресенье на то чтобы докапаться до разгадки я наткнулся на очень мой взгляд большие ГРАБЛИ! Вариант решения проблемы номер "1": Берем Создаем юзер контрол, убираем у него абстрактность, создаем конструктор для него куда передаем в зависимости от того какую страницу хотим получить некоторые параметры + ссылку на класс страницы, на которой его создаем. И тут сталкиваюсь с тем, что не могу его нарисовать ни как, я так понял лазая в мсдн, что это можно как-то сделать через HtmlTextWriter, но ему в конструктор надо передать абстрактный класс, который нельзя создать(TextWriter), следовательно и нельзя нарисовать Контрол. Увидеть это всё можно если почитать про метод RenderControl из мсдн-а: public void RenderControl( HtmlTextWriter writer // треб-ся экземпляр текст врайтера, который абстрактен в описании, поэтому хз - запутался уже совсем!!! (( :(( :( ); ГДе ВЗЯТЬ ОБЪЕКТ ЭТОГО htmltextwriter'a? HtmlTextWriter Constructor : - public HtmlTextWriter(TextWriter); public HtmlTextWriter(TextWriter, string); из того что уже как бы создано при работе не нашел ни чего что можно передать конструктору(всмысле объекта TextWriter) Добавить в коллекцию Контролоа страницы или например PlaceHolder'a могу, а нарисовать т.е. чтобы он отображался на экране НЕТ ! Как это сделать подскажите??? Или же еще один способ который тоже закончился не удачей: Есть такой метод для динамической подгрузки контролов наз-ся LoadControl("[строка-название файла контрола, н-р mycontrol.ascx]"); так вот он то работает, но проблема в том, что ты н как не передашь контролу ни какой информации о том, как ему вывестись(ну предположем, максимум на что я способен был сообразить, это добавить какие нибудь условия в Page_Load - контрола, который хочу вывести на многих страницах) Потом, конечно добавляешь его в коллекцию ну н-р панели или страницы- разницы нет, он ОТОБРАЖАЕТСЯ, НО ОН сам по себе статичен!Какой- был такой и отобразился! Но самое интересное, что контрол может содаржать докучи объектов, причем разных типов, и поэтому, когда из VS IDE пытаешсь достучаться н-р к дочернему контролу (н-р HyperLink, Page.Controls[15]. - и тут только то, что есть у контролы как класса, а то, что есть и должно быть у HyperLink'a - тем и не пахнет) А потому, что я так понимаю каждый дочерний контрол из подгружаемого надо приводить к типу его на самом деле, чтобы получить все его унаследованные свойства от предка(HyperLink.NavigateUrl, DataGrid.Items etc) Вообщем вот такая-то беда ! Я думаю, что у меня изначально наверное неправильный подход(сложно очень), но что самое обидной ни когда не ищу легких путей, хотя и надо ! Но во всем ест свои плюсы и минусы! Идея ву том, чтобы каждая страницы сайта загружалась динамически ! Причем, например меню было написано в одном месте для удобства (н-р файле контрола или класса) и контент в зависимости от типа контента (справочник с датагридом, текст с картинками или что-то еще) тоже Делим страницу на две области таблице обычной и слева меню, справа контент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 13:29 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
Vladimir SkubrievГДе ВЗЯТЬ ОБЪЕКТ ЭТОГО htmltextwriter'a? тебе надо лишь переопределить метод render, указав, что в него при вызове передается ссылка на htmltextwriter, и использовать его внутри метода по своему усмотрению... потом, при формировании контрола, будет вызван этот рендер, куда будет передана ссылка, иными словами тебе его создавать не надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 13:38 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
Ну и тонкости программного подхода тоесть если я переопределяю метод, который использует уже сущ-ий объект в базовом классе мне не надо его создавать он сам его передаст переопределенному методу ? Хорошо, а если например, я захотел поменять у контрола например Label только поле Text и еще какие либо поля, но самого контрола всмысле описания его экземпляров, свойств методов не переопределял то можно ли вывести это контрол не переопределяя послностью метод ? и как вообще поступить когда надо чтобы каждая страничка формировлась динамчески в зав-ти от передаваемых параметров ??????????????? как ээти параметры передать и от куда взять ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 13:50 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
Vladimir SkubrievХорошо, а если например, я захотел поменять у контрола например Label только поле Text и еще какие либо поля, но самого контрола всмысле описания его экземпляров, свойств методов не переопределял то можно ли вывести это контрол не переопределяя послностью метод ? "расшифруй" =) в двух словах: если хочешь изменить отображение контрола, переопределяй рендер (желательно у наследника от этого контрола), если хочешь изменить поведение - переопределяй нужные методы, либо опять же наследуйся и добавляй нужные... Vladimir Skubrievи как вообще поступить когда надо чтобы каждая страничка формировлась динамчески в зав-ти от передаваемых параметров ??????????????? страница или контрол? если страница, то просто добавляй/убирай контролы по ситуации, если же контрол, то переопределяй рендер, и через него выводи что нужно, в зависимости от состояния твоего контрола... Vladimir Skubrievкак ээти параметры передать и от куда взять ? передать можно через контструктор или свойства (можно через методы), брать? ну это уж от твоей логики зависит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 13:58 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
а почему когда создаешь в VS новый контрол он наследуется и перед ним стоит модификатор abstract - для чего это ? а если я не меняю конртол ,меняю только значения его свойств, мне что тоже прийдеться полностью переписывать его вывод в хтмл? всмысле если я буду подгружать его из класса который описан в другом файле не обязательно наз-ся он будет *.ascx а будет просто MyControl.cs а внем уже будет класс который наследуется от контрола ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 15:53 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
тебе следует посмореть в сторону server компонент - именно в них можно как угодно управлять выводимыми тегами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:00 |
|
||
|
динамический вывод на странице ???
|
|||
|---|---|---|---|
|
#18+
Vladimir Skubrievа почему когда создаешь в VS новый контрол он наследуется и перед ним стоит модификатор abstract - для чего это ? как ты его создаешь, в обычных условиях создания юзер-контрола там не должно быть абстракта... Vladimir Skubrievа если я не меняю конртол ,меняю только значения его свойств, мне что тоже прийдеться полностью переписывать его вывод в хтмл? если меняешь значения - нет, ты просто задаешь состояние контрола... попробуй отыскать в инете книгу "Developing ASP.NET Server Controls and Components", тогда многое, если не все, станет ясно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:20 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1393367]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 436ms |

| 0 / 0 |
