Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: не срабатывает кнопка  (Прочитано 13373 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
abra
Постоялец

il
Offline Offline

« : 13-04-2009 10:59 » 

И опять трям :о)

для вывода тела сайта, есть у меня страница с пользовательскими элементами управления
в .aspx
 <span id="ucBody" runat="server">

 и хочу я что бы при нажатии на кнопочку, вызывался элемент управления NewMenu.ascx, находящийся в папке Controls, но почему то не срабатывает :о/

собсна кнопка <asp:Button ID="btnNewMenu"  runat="server">

в .aspx.cs
Код:
protected void btnNewMenu_Click(object sender, EventArgs e)
    {
        ucBody.Controls.Add(LoadControl(@"Controls\NewMenu.ascx"));
}
Записан

Что для одного ошибка, для другого - исходные данные.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-04-2009 11:25 » 

Мало информации.

Все вложенные элементы управления от нижнего span вплоть до верхнего form должны иметь runat="server".
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
abra
Постоялец

il
Offline Offline

« Ответ #2 : 13-04-2009 12:06 » 

какой информации не хватает?

Я говорю про один вполне простенький элемент(сейчас там вообще ничего нет). Что там будет  в будующем, по идее вообще на переход влиять не должно.
« Последнее редактирование: 13-04-2009 12:16 от abra » Записан

Что для одного ошибка, для другого - исходные данные.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 13-04-2009 12:51 » 

abra, то, что тут представлено, должно работать. Раз оно не работает, значит ошибка в тех местах, которые ты не показываешь.

Интересует не простенький элемент, а то, что его окружает. У него должно быть правильное окружение. Дерево элементов управления должно правильно выстраиваться на сервере. Впоследствии наверняка захочется обрабатывать события элемента управления - тогда при PostBack страницы нужно будет позаботиться о его создании на ранних стадиях. Лучше в Page_Init, но можно и в Page_Load.

Если ты будешь сообщать информацию согласно твоим идеям, а не всю, относящуюся к проблеме, то далеко не уедем. Нужно чётко понимать, как обрабатывается запрос в ASP.NET и как строится ответ: и по временным стадиям, и по структуре объектов сервера.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
abra
Постоялец

il
Offline Offline

« Ответ #4 : 13-04-2009 13:15 » 

хм.... честно говоря, какую инфу надо добавить не понятно, поэтому расскажу все с са-а-а-амого начала :о))

Делаю админку для сайта. В файле .aspx лежит меню, которое берем из бд, кнопочка "добавить новый пункт меню" и место для самого тела с данными <span id="ucBody" runat="server">.

При нажатии на кнопочку, должен загрузится элемент с формой для добавления.

на .aspx нет ничего кроме таблиц для верстки,DataList, для вывода менюшек, кнопки и этой самой ucBody.
Все события, кроме кнопки(естественно) обрабатываются в Page_Load.

я вообще не представляю в какую сторону копать........

Записан

Что для одного ошибка, для другого - исходные данные.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 13-04-2009 18:27 » 

Версия .NET и VS?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 13-04-2009 18:45 » 

abra, а покажи сгенерированный код (html)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 13-04-2009 20:58 » 

Вот это работает:

MyPage.aspx
Код: (Text) C# (ASP.NET)
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>My Page</title>
        <script runat="server">
            protected void AddControlButton_Click(object sender, EventArgs e)
            {
                this.ControlContainer.Controls.Add(this.LoadControl("MyControl.ascx"));
            }
        </script>
    </head>
    <body>
        <form id="MyForm" runat="server">
            <span id="ControlContainer" runat="server" />
            <br />
            <button id="AddControlButton" runat="server" onserverclick="AddControlButton_Click">Add my control</button>
        </form>
    </body>
</html>

MyControl.ascx
Код: (Text) C# (ASP.NET)
<%@ Control Language="C#" ClassName="MyControl" %>
<span>My Control</span>

Соответствует заявленному. Значит дело не в том, что заявлено.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 17-04-2009 18:16 » 

Сегодня столкнулся.

Могу добавить, что создавать контролы в Prerender слишком поздно - они хоть и добавляются, но их события уже не работают.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines