MSVS 2005 Beta 1: Использование UserControl в классах
От: LM Россия www.lmstudio.ru
Дата: 04.03.05 09:41
Оценка:
В моём проекте мне надо использовать UserControl-ы в классах.

Пример по шагам:
0. Я написал класс MyClass и положил его в каталог "Code".
В это классе есть такой метод:

public void DoSomething (Page page)
{
    MyUserControl my_control = page.FindControl ("MyuserControlId") as MyUserControl;
    ...
}



1. На aspx странице я поместил свой контрол MyUserControl (файлы этого контрола размещены там же, где и страница — т.е. в обыном каталоге, не в Code)

2. В обработке OnLoad страницы я хочу выполнить следующее:

MyClass my_class = new MyClass ();
my_class.DoSomething (this.Page);



Так вот, при компиляции получаю ошибку в методе DoSomething класса MyClass на счёт того, что класс MyUserControl не может быть найден.

Как мне обойти эту проблему?
Или, может быть, мне кто-нибудь подскажет альтернативный подход работы с UserControl-ми в кодовых классах?
LM Studio
Re: MSVS 2005 Beta 1: Использование UserControl в классах
От: Oyster Украина https://github.com/devoyster
Дата: 04.03.05 10:08
Оценка:
Здравствуйте, LM, Вы писали:

LM>Так вот, при компиляции получаю ошибку в методе DoSomething класса MyClass на счёт того, что класс MyUserControl не может быть найден.


LM>Как мне обойти эту проблему?

LM>Или, может быть, мне кто-нибудь подскажет альтернативный подход работы с UserControl-ми в кодовых классах?

А это... сорри за тупое предположение... но может у них namespace разный?
Re[2]: MSVS 2005 Beta 1: Использование UserControl в классах
От: LM Россия www.lmstudio.ru
Дата: 04.03.05 10:25
Оценка:
Здравствуйте, Oyster, Вы писали:

O>Здравствуйте, LM, Вы писали:


LM>>Так вот, при компиляции получаю ошибку в методе DoSomething класса MyClass на счёт того, что класс MyUserControl не может быть найден.


LM>>Как мне обойти эту проблему?

LM>>Или, может быть, мне кто-нибудь подскажет альтернативный подход работы с UserControl-ми в кодовых классах?

O>А это... сорри за тупое предположение... но может у них namespace разный?


В том-то походу и проблема, что namespace-ов у страниц и, соответственно, UserControl-ов вообще нет.
Если же насильственно в code-файле контрола partial class обрамить в namespace примерно так:


namespace MyControls
{
    public partial class MyUserControl_ascx : UserControl
    {
        ...
    }
}


то внутри класса перестают видится все элементы управления, из которых сотстоит UserControl (т.е., к примеру, я ляпнул внутри контрола таблицу, так вот её уже не будет видно)
LM Studio
Re[3]: MSVS 2005 Beta 1: Использование UserControl в классах
От: Gollum Россия  
Дата: 04.03.05 11:04
Оценка:
Здравствуйте, LM, Вы писали:

LM>то внутри класса перестают видится все элементы управления, из которых сотстоит UserControl (т.е., к примеру, я ляпнул внутри контрола таблицу, так вот её уже не будет видно)


А в .ascx при этом менял ClassName="WebUserControl_ascx" на ClassName="MyNamespace.WebUserControl_ascx" ?
Другое дело что в папке Code этого все равно не видно... На досуге подумаю как тут можно вывернуться.
He's taking the preventive measures, It must have been too late
Eugene Agafonov on the .NET

Re[4]: MSVS 2005 Beta 1: Использование UserControl в классах
От: LM Россия www.lmstudio.ru
Дата: 04.03.05 11:53
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, LM, Вы писали:


LM>>то внутри класса перестают видится все элементы управления, из которых сотстоит UserControl (т.е., к примеру, я ляпнул внутри контрола таблицу, так вот её уже не будет видно)


G>А в .ascx при этом менял ClassName="WebUserControl_ascx" на ClassName="MyNamespace.WebUserControl_ascx" ?

G>Другое дело что в папке Code этого все равно не видно... На досуге подумаю как тут можно вывернуться.

Не менял, но по ClassName-у в МСДН-е написано, что namespace включаться не должен. Подумай, а то я уже голову сломал, а сделать надо.
LM Studio
Re[5]: MSVS 2005 Beta 1: Использование UserControl в классах
От: Gollum Россия  
Дата: 04.03.05 12:09
Оценка: :)
Здравствуйте, LM, Вы писали:

LM>Не менял, но по ClassName-у в МСДН-е написано, что namespace включаться не должен.


В текущей бете надо. По крайней мере в той что у меня без namespace дизайнер глючит

LM>Подумай, а то я уже голову сломал, а сделать надо.


Виноват, недоработал, впредь обязуюсь!
Ежели череп прогрызла мышь — время забыть о былом
Eugene Agafonov on the .NET

Re[6]: MSVS 2005 Beta 1: Использование UserControl в классах
От: LM Россия www.lmstudio.ru
Дата: 05.03.05 06:23
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, LM, Вы писали:


LM>>Не менял, но по ClassName-у в МСДН-е написано, что namespace включаться не должен.


G>В текущей бете надо. По крайней мере в той что у меня без namespace дизайнер глючит


LM>>Подумай, а то я уже голову сломал, а сделать надо.


G>Виноват, недоработал, впредь обязуюсь!



это я ж типа попросил
LM Studio
Re[6]: MSVS 2005 Beta 1: Использование UserControl в классах
От: LM Россия www.lmstudio.ru
Дата: 05.03.05 07:46
Оценка:
Здравствуйте, Gollum, Вы писали:

G>В текущей бете надо. По крайней мере в той что у меня без namespace дизайнер глючит


Точно, глючит. UserControl загнал в namespace, вот тока в Code этот namespace всё одно не виден. Я так понимаю из за того, что полностью конечный класс для контрола генерируется динамически на этапе линкования, так что при разработе к нему доступа нету.

Если же переместить файлы UserControl в Code, то, как я уже говорил, пропадает видимость внутренних эл-ов управления.
LM Studio
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.