Главные страницы, страницы формы, форма Runat = Server> Все методы OnClick на главной странице?

StackOverflow https://stackoverflow.com/questions/2889851

Вопрос

Проблема у меня есть, это то, что у меня есть несколько вложенных главных страниц:

  • 1-й уровень: Global (заголовок, нижний колонтитул, логин, навигация и т. Д.)
  • уровень 2: конкретные (страницы поиска, страницы аккаунта и т. Д.)
  • Уровень 3: сама страница

Теперь, поскольку только одна форма может иметь runat=server, Я поставил форму на глобальной странице (так что я могу справиться с такими вещами, как логин, обратная связь и т. Д.).

Теперь с этим решением я должен также поставить методы на примере 3 (см. Выше) методы, такие как поиск, также на главной странице уровня 1, но это приведет к этой странице тяжелой (для разработки) с кодом из всех Места, даже те, которые используются только на одной странице (например, изменить форму электронной почты).

Есть ли способ делегировать такие методы от onclick События (например: ChangeEMail) с уровня 1 (глобальная шестерня) до уровня 3 (сама единственная страница).

быть еще более понятным: я хочу не иметь метода ChangeEMail На глобальной главной странице кода позади, но хотелось бы «переместить» как-то на единственной странице, которая на самом деле будет использовать ее. Причина, по которой это в настоящее время должно быть на Глобальном мастере, заключается в том, что глобальный мастер имеет form runat=server И там может быть только один из страниц ASPX.

Таким образом, это будет проще (более логично) для структурирования кода.

Thnx (надеюсь, я объяснил это правильно)

Искали, но не нашли никакой общей информации о обработке этого случая, обычный ответ: есть все методы на главной странице, но мне это не нравится. Так что любой способ перемещения его на определенную страницу будет потрясающим. Thnx.

редактировать также часть того же ... с другой - как получить доступ к textbox1.text Например на странице контента с главной страницы? Любая лучшая практика для этого?

Это было полезно?

Решение

Если вы поместите кнопку поиска и TextBox на сам .aspx (Уровень 3) Обработчик событий также будет выходить на странице (или его кодовый пакет). Неважно, что тег формы находится на глобальной шестерни (уровень 1)

Что касается вашего второго вопроса: вы можете использовать

var tb = this.FindControl("textbox1") as TextBox;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top