powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по обьработке событий
12 сообщений из 12, страница 1 из 1
Вопрос по обьработке событий
    #33842642
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть WebPart, на нём контрол, который содержыт CheckBox.

Почему не срабатывает обработчик события CheckedChanged?



CheckBox ch = new CheckBox
ch.CheckedChanged += ...

...ch_Checked(...)
{
// Не срабатывает :-S
}
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33842695
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AutoPostBack is TRUE?----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33843142
i_te3s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

А>Есть WebPart, на нём контрол, который содержыт CheckBox.

А>Почему не срабатывает обработчик события CheckedChanged?


А>
А>CheckBox ch = new CheckBox
А>ch.CheckedChanged += ...

А>...ch_Checked(...)
А>{
А>// Не срабатывает :-S
А>}
А>

Нужно установить его свойство: AutoPostBack=true
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33843369
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, i_te3s, Вы писали:

НЕ ПОМОГАЕТ :shuffle:
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33843424
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, <Аноним>, Вы писали:

А>Почему не срабатывает обработчик события CheckedChanged?

AutoPostBack у чекбокса стоит? А вообще, мало информации. Показывайте код.Мы сделали все как нужно и теперь не нужны.
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33843997
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Gollum, Вы писали:

>Показывайте код.

Этот контрол кладётся на другой контрол, который в свою очередь кладётся на WebPart
(под словом кладётся на контрол нужно понимать Controls.Add(ctrl), ctrl кладётся на контрол,
которому принадлежит свойство Controls)



using System;
using System.Drawing;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace ShapeDotNet.GIS.Controls
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:GpsObjectsGrid runat=server></{0}:GpsObjectsGrid>")]
    public class GpsObjectsGrid : WebControl
    {
        public GpsObjectsGrid(GpsObjectRows gpsObjectRows)
        {
            Rows = gpsObjectRows;
        }

        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public GpsObjectRows Rows
        {
            get
            {
                GpsObjectRows gpsObjectRows = (GpsObjectRows)ViewState["GpsObjectRows"];
                return gpsObjectRows;
            }

            set
            {
                ViewState["GpsObjectRows"] = value;
            }
        }

        protected override void CreateChildControls()
        {
            Table table = new Table();
            table.GridLines = GridLines.Both;

            TableRow tableRow = new TableRow();

            TableCell visibleTableCellHeader = new TableCell();
            visibleTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
            visibleTableCellHeader.Controls.Add(new LiteralControl("Видимость"));
            tableRow.Cells.Add(visibleTableCellHeader);
            
            TableCell nameTableCellHeader = new TableCell();
            nameTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
            nameTableCellHeader.Controls.Add(new LiteralControl("Название"));
            tableRow.Cells.Add(nameTableCellHeader);

            TableCell colorTableCellHeader = new TableCell();
            colorTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
            colorTableCellHeader.Controls.Add(new LiteralControl("Цвет"));
            tableRow.Cells.Add(colorTableCellHeader);


            TableCell dotedTableCellHeader = new TableCell();
            dotedTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
            dotedTableCellHeader.Controls.Add(new LiteralControl("Точки / Линия"));
            tableRow.Cells.Add(dotedTableCellHeader);

            tableRow.BorderStyle = BorderStyle.Outset;
            table.Rows.Add(tableRow);

            GpsObjectRows gpsObjectRows = Rows;
            GpsObjectRows.KeyCollection ids = gpsObjectRows.Keys;
            foreach (int id in ids)
            {
                GpsObjectRow gpsObjectRow = gpsObjectRows[id];

                TableRow tableCtrlsRow = new TableRow();

                TableCell visibleCtrlTableCell = new TableCell();
                visibleCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
                CheckBox visibleCheckBox = new CheckBox();
                visibleCheckBox.ID = String.Format("visibleCB_{0}", id);
                visibleCheckBox.Checked = gpsObjectRow.Visible;
                visibleCheckBox.AutoPostBack = true;
                visibleCheckBox.CheckedChanged += new EventHandler(visibleCheckBox_CheckedChanged);
                visibleCtrlTableCell.Controls.Add(visibleCheckBox);
                tableCtrlsRow.Cells.Add(visibleCtrlTableCell);
                Page.RegisterRequiresPostBack(visibleCheckBox);

                TableCell nameCtrlTableCell = new TableCell();
                nameCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
                nameCtrlTableCell.Controls.Add(new LiteralControl(gpsObjectRow.Name));
                tableCtrlsRow.Cells.Add(nameCtrlTableCell);

                TableCell colorCtrlTableCell = new TableCell();
                colorTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
                Panel colorPanel = new Panel();
                colorPanel.Width = 45;
                colorPanel.Height = 1;
                colorPanel.BackColor = gpsObjectRow.Color;
                colorCtrlTableCell.Controls.Add(colorPanel);
                tableCtrlsRow.Cells.Add(colorCtrlTableCell);

                TableCell dotedCtrlTableCell = new TableCell();
                dotedCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
                CheckBox dotedCheckBox = new CheckBox();
                dotedCheckBox.ID = String.Format("dotedCB_{0}", id);
                dotedCheckBox.Checked = gpsObjectRow.Doted;
                dotedCheckBox.AutoPostBack = true;
                dotedCheckBox.CheckedChanged += new EventHandler(dotedCheckBox_CheckedChanged);

                dotedCtrlTableCell.Controls.Add(dotedCheckBox);
                tableCtrlsRow.Cells.Add(dotedCtrlTableCell);

                table.Rows.Add(tableCtrlsRow);
            }

            Controls.Add(table);

            Controls.Add(new LiteralControl("<br>"));

            Button sendButton = new Button();
            sendButton.ID = "sendButton";
            sendButton.Text = "Применить";
            Controls.Add(sendButton);
        }

        void cb1_CheckedChanged(object sender, EventArgs e)
        {
            throw new Exception("The method or operation is not implemented.");
        }

// ОНИ НЕ СРАБАТЫВАЮТ, ОДНАКО ПОСТБЭК ЕСТЬ.
// КРОМЕ ТОГО. ПОСЛЕ ПОСТБЭКА СТРАНИЧКА ВЫГЛЯДИТ ТАКЖЕ КАК И ПРИ ПЕРВОЙ ЗАГРУЗКИ 
// CHECK-BOX'Ы СБРАСЫВАЮТСЯ В ПРЕЖНЕЕ СОСТОЯНИЕ
        void dotedCheckBox_CheckedChanged(object sender, EventArgs e)
        {
        }

        void visibleCheckBox_CheckedChanged(object sender, EventArgs e)
        {

        }
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33844052
i_te3s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Аноним, Вы писали:

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

>>Показывайте код.

А>Этот контрол кладётся на другой контрол, который в свою очередь кладётся на WebPart
А>(под словом кладётся на контрол нужно понимать Controls.Add(ctrl), ctrl кладётся на контрол,
А>которому принадлежит свойство Controls)

А>

А>using System;
А>using System.Drawing;
А>using System.Collections.Generic;
А>using System.ComponentModel;
А>using System.Text;
А>using System.Web;
А>using System.Web.UI;
А>using System.Web.UI.WebControls;
А>using System.Web.UI.WebControls.WebParts;

А>namespace ShapeDotNet.GIS.Controls
А>{
А>    [DefaultProperty("Text")]
А>    [ToolboxData("<{0}:GpsObjectsGrid runat=server></{0}:GpsObjectsGrid>")]
А>    public class GpsObjectsGrid : WebControl
А>    {
А>        public GpsObjectsGrid(GpsObjectRows gpsObjectRows)
А>        {
А>            Rows = gpsObjectRows;
А>        }

А>        [Bindable(true)]
А>        [Category("Appearance")]
А>        [DefaultValue("")]
А>        [Localizable(true)]
А>        public GpsObjectRows Rows
А>        {
А>            get
А>            {
А>                GpsObjectRows gpsObjectRows = (GpsObjectRows)ViewState["GpsObjectRows"];
А>                return gpsObjectRows;
А>            }

А>            set
А>            {
А>                ViewState["GpsObjectRows"] = value;
А>            }
А>        }

А>        protected override void CreateChildControls()
А>        {
А>            Table table = new Table();
А>            table.GridLines = GridLines.Both;

А>            TableRow tableRow = new TableRow();

А>            TableCell visibleTableCellHeader = new TableCell();
А>            visibleTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
А>            visibleTableCellHeader.Controls.Add(new LiteralControl("Видимость"));
А>            tableRow.Cells.Add(visibleTableCellHeader);
            
А>            TableCell nameTableCellHeader = new TableCell();
А>            nameTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
А>            nameTableCellHeader.Controls.Add(new LiteralControl("Название"));
А>            tableRow.Cells.Add(nameTableCellHeader);

А>            TableCell colorTableCellHeader = new TableCell();
А>            colorTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
А>            colorTableCellHeader.Controls.Add(new LiteralControl("Цвет"));
А>            tableRow.Cells.Add(colorTableCellHeader);


А>            TableCell dotedTableCellHeader = new TableCell();
А>            dotedTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
А>            dotedTableCellHeader.Controls.Add(new LiteralControl("Точки / Линия"));
А>            tableRow.Cells.Add(dotedTableCellHeader);

А>            tableRow.BorderStyle = BorderStyle.Outset;
А>            table.Rows.Add(tableRow);

А>            GpsObjectRows gpsObjectRows = Rows;
А>            GpsObjectRows.KeyCollection ids = gpsObjectRows.Keys;
А>            foreach (int id in ids)
А>            {
А>                GpsObjectRow gpsObjectRow = gpsObjectRows[id];

А>                TableRow tableCtrlsRow = new TableRow();

А>                TableCell visibleCtrlTableCell = new TableCell();
А>                visibleCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
А>                CheckBox visibleCheckBox = new CheckBox();
А>                visibleCheckBox.ID = String.Format("visibleCB_{0}", id);
А>                visibleCheckBox.Checked = gpsObjectRow.Visible;
А>                 visibleCheckBox.AutoPostBack = true;
А>                 visibleCheckBox.CheckedChanged += new EventHandler(visibleCheckBox_CheckedChanged);
А>                visibleCtrlTableCell.Controls.Add(visibleCheckBox);
А>                tableCtrlsRow.Cells.Add(visibleCtrlTableCell);
А>                Page.RegisterRequiresPostBack(visibleCheckBox);

А>                TableCell nameCtrlTableCell = new TableCell();
А>                nameCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
А>                nameCtrlTableCell.Controls.Add(new LiteralControl(gpsObjectRow.Name));
А>                tableCtrlsRow.Cells.Add(nameCtrlTableCell);

А>                TableCell colorCtrlTableCell = new TableCell();
А>                colorTableCellHeader.HorizontalAlign = HorizontalAlign.Center;
А>                Panel colorPanel = new Panel();
А>                colorPanel.Width = 45;
А>                colorPanel.Height = 1;
А>                colorPanel.BackColor = gpsObjectRow.Color;
А>                colorCtrlTableCell.Controls.Add(colorPanel);
А>                tableCtrlsRow.Cells.Add(colorCtrlTableCell);

А>                TableCell dotedCtrlTableCell = new TableCell();
А>                dotedCtrlTableCell.HorizontalAlign = HorizontalAlign.Center;
А>                CheckBox dotedCheckBox = new CheckBox();
А>                dotedCheckBox.ID = String.Format("dotedCB_{0}", id);
А>                dotedCheckBox.Checked = gpsObjectRow.Doted;
А>                 dotedCheckBox.AutoPostBack = true;
А>                dotedCheckBox.CheckedChanged += new EventHandler(dotedCheckBox_CheckedChanged);

А>                dotedCtrlTableCell.Controls.Add(dotedCheckBox);
А>                tableCtrlsRow.Cells.Add(dotedCtrlTableCell);

А>                table.Rows.Add(tableCtrlsRow);
А>            }

А>            Controls.Add(table);

А>            Controls.Add(new LiteralControl("<br>"));

А>            Button sendButton = new Button();
А>            sendButton.ID = "sendButton";
А>            sendButton.Text = "Применить";
А>            Controls.Add(sendButton);
А>        }

А>        void cb1_CheckedChanged(object sender, EventArgs e)
А>        {
А>            throw new Exception("The method or operation is not implemented.");
А>        }

А>// ОНИ НЕ СРАБАТЫВАЮТ, ОДНАКО ПОСТБЭК ЕСТЬ.
А>// КРОМЕ ТОГО. ПОСЛЕ ПОСТБЭКА СТРАНИЧКА ВЫГЛЯДИТ ТАКЖЕ КАК И ПРИ ПЕРВОЙ ЗАГРУЗКИ 
А>// CHECK-BOX'Ы СБРАСЫВАЮТСЯ В ПРЕЖНЕЕ СОСТОЯНИЕ
А>         void dotedCheckBox_CheckedChanged(object sender, EventArgs e)
А>        {
А>        }

А>        void visibleCheckBox_CheckedChanged(object sender, EventArgs e)
А>        {

А>        }

А>

А что происходит в фукции Page_Load? Может быть там вызывается CreateChildControls() без проверки IsPostBack?
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33844071
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, i_te3s, Вы писали:

_>А что происходит в фукции Page_Load? Может быть там вызывается CreateChildControls() без проверки IsPostBack?

У класса страницы на которой WebPart находится:




// Функция вот такая. А как должно быть? Почему постбэк есть. Эвент не срабатывает. Страница выглядит после постбэка также
// как и при первой загрузке.

// Как сделать правильно?

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33844478
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Аноним, Вы писали:

МУЖИКИ, ВЫРУЧАЙТЕ
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33844537
Darkman_VLT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наводит на мысль, что отключен ViewState Ваша фраза: "ПОСЛЕ ПОСТБЭКА СТРАНИЧКА ВЫГЛЯДИТ ТАКЖЕ КАК И ПРИ ПЕРВОЙ ЗАГРУЗКИ CHECK-BOX'Ы СБРАСЫВАЮТСЯ В ПРЕЖНЕЕ СОСТОЯНИЕ"

Попробуй-те включить данное свойство у CheckBox'a или у контейнера, если таковой имеется.
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33844663
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Darkman_VLT, Вы писали:

Кладу контрол (перетаскиваю мышей в дизайнере на страницу aspx) на страницу aspx:
Запускаю страницу. Х*р там. Состояние сбрасывается. Событие не срабатывает. :-(

КАК ВЫ ТАКОЕ ДЕЛАЕТЕ?

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MyCustomControls
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class MyCustomControl : WebControl, IPostBackDataHandler
{
protected override void CreateChildControls()
{
EnableViewState = true;

CheckBox chb = new CheckBox();
chb.ID = "CH1";
chb.Text = "sample text";
chb.AutoPostBack = true;
chb.EnableViewState = true;
chb.CheckedChanged += new EventHandler(chb_CheckedChanged);

Controls.Add(chb);
}

// Ни в один из обработчиков, вход не происходит
void chb_CheckedChanged(object sender, EventArgs e)
{
throw new Exception("The method or operation is not implemented.");
}

public virtual bool LoadPostData(string postDataKey,
NameValueCollection postCollection)
{
return true;
}

public virtual void RaisePostDataChangedEvent()
{
}


}
...
Рейтинг: 0 / 0
Вопрос по обьработке событий
    #33845316
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, <Аноним>, Вы писали:

А>МУЖИКИ, ВЫРУЧАЙТЕ

Посмотрю, как свободное время будетЛюбая весть изначально благая, просто ты к этому еще не привык
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по обьработке событий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]