powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / События WebForms
25 сообщений из 25, страница 1 из 1
События WebForms
    #38284179
webformfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cсылку на толковое описание для
чего использовать события WebForms?
PageInit итп
...
Рейтинг: 0 / 0
События WebForms
    #38284186
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
События WebForms
    #38284380
webformfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA ASP.NET Page Life Cycle Overview
ты сам -то на формах пишешь? и если да, то в каком событии что делаешь?
...
Рейтинг: 0 / 0
События WebForms
    #38284624
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webformfan, на прошлой работе плотно писал. Сейчас в свободное время поддерживаю то, что наваял.

Ниже приведу код из тестового задания, что я выполнил, при устройстве на текущую работу. В принципе он достаточно хорошо иллюстрирует как я писал (пишу) на формах.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication.UI
{
    using BusinessObjects;
    using DataAccess;

    public partial class BalancePage : Page
    {
        protected Account account;
        private List<Account> accounts;
        protected List<Remittance> collection;
        private RemittanceCondition condition;

        protected override void OnDataBinding(EventArgs e)
        {
            if (!IsPostBack)
            {
                cmbAccountFrom.Items.Add(String.Empty);
                cmbAccountTo.Items.Add(String.Empty);

                foreach (Account account in accounts)
                {
                    var text = Convert.ToString(account);
                    var value = Convert.ToString(account.ID);

                    cmbAccountFrom.Items.Add(new ListItem(text, value));
                    cmbAccountTo.Items.Add(new ListItem(text, value));
                }
            }

            // Вызываем метод базового класса для инициализации события DataBinding
            base.OnDataBinding(e);
        }

        protected override void OnInit(EventArgs e)
        {
            account = new Account();
            condition = new RemittanceCondition();

            // Вызываем метод базового класса для инициализации события Init
            base.OnInit(e);

            // Подписываемся на события элементов управления
            btnAddRemittance.Click += new EventHandler(OnAddRemittanceClick);
            btnRefresh.Click += new EventHandler(OnRefreshClick);
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // Загружаем данные и связываем их с элементами управления
            if (!IsPostBack)
            {
                DoRefresh();
            }
        }

        void BuildCondition()
        {
            // Ограничение на счёт отправителя
            if (!String.IsNullOrEmpty(cmbAccountFrom.SelectedValue))
            {
                condition.From = new AccountCondition { ID = Convert.ToInt32(cmbAccountFrom.SelectedValue) };
            }

            // Ограничение на счёт получателя
            if (!String.IsNullOrEmpty(cmbAccountTo.SelectedValue))
            {
                condition.To = new AccountCondition { ID = Convert.ToInt32(cmbAccountTo.SelectedValue) };
            }
        }

        void DataReload()
        {
            using (AccountAccessor data = new AccountAccessor())
            {
                accounts = data.GetList(new AccountCondition());
                collection = data.GetList(condition);

                // Ищем текущий счёт
                if (condition.From.IsSpecified)
                {
                    account = accounts.Find(a => a.ID == condition.From[0].ID);
                }
            }
        }

        void DoRefresh()
        {
            BuildCondition();
            DataReload();
            DataBind();
        }

        void OnAddRemittanceClick(object sender, EventArgs e)
        {
            decimal amount;

            if (!String.IsNullOrEmpty(cmbAccountFrom.SelectedValue) &&
                !String.IsNullOrEmpty(cmbAccountTo.SelectedValue) && Decimal.TryParse(tbAmount.Text, out amount))
            {
                using (AccountAccessor data = new AccountAccessor())
                {
                    data.Insert(
                        new Remittance
                        {
                            Amount = amount,
                            From = new Account { ID = Convert.ToInt32(cmbAccountFrom.SelectedValue) },
                            To = new Account { ID = Convert.ToInt32(cmbAccountTo.SelectedValue) }
                        });
                }
            }

            DoRefresh();
        }

        void OnRefreshClick(object sender, EventArgs e)
        {
            DoRefresh();
        }
    }
}


Если коротко, то:
- в OnInit инициализирую внутренние переменные, подписываюсь на некоторые события;
- в OnLoad загружаю данные;
- в OnDataBinding привязываю их к элементам управления.
...
Рейтинг: 0 / 0
События WebForms
    #38285119
asddsaувуву
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?
...
Рейтинг: 0 / 0
События WebForms
    #38285170
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asddsaувувуесли, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
...
Рейтинг: 0 / 0
События WebForms
    #38285215
asddsaувуву
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAasddsaувувуесли, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
:) Имею ввиду пользовательский контрол. В нем получаем некоторые данные, а эти данные нужны на странице его вызвавшей
...
Рейтинг: 0 / 0
События WebForms
    #38285323
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asddsaувувуskyANAпропущено...
Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
:) Имею ввиду пользовательский контрол. В нем получаем некоторые данные, а эти данные нужны на странице его вызвавшейи что мешает сделать у этого контрола публичное свойство?
...
Рейтинг: 0 / 0
События WebForms
    #38285355
webformfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганельasddsaувувупропущено...

:) Имею ввиду пользовательский контрол. В нем получаем некоторые данные, а эти данные нужны на странице его вызвавшейи что мешает сделать у этого контрола публичное свойство?

Ничего не мешает.
А в каком событии родительского контрола Вы это публичное свойство обычно читаете?
...
Рейтинг: 0 / 0
События WebForms
    #38285361
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно Page_Load
...
Рейтинг: 0 / 0
События WebForms
    #38285540
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webformfanПаганельпропущено...
и что мешает сделать у этого контрола публичное свойство?

Ничего не мешает.
А в каком событии родительского контрола Вы это публичное свойство обычно читаете?
Смотрим код выше:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
void OnAddRemittanceClick(object sender, EventArgs e)
{
    decimal amount;

    if (!String.IsNullOrEmpty(cmbAccountFrom.SelectedValue) &&
        !String.IsNullOrEmpty(cmbAccountTo.SelectedValue) && Decimal.TryParse(tbAmount.Text, out amount))
    {
        using (AccountAccessor data = new AccountAccessor())
        {
            data.Insert(
                new Remittance
                {
                    Amount = amount,
                    From = new Account { ID = Convert.ToInt32(cmbAccountFrom.SelectedValue) },
                    To = new Account { ID = Convert.ToInt32(cmbAccountTo.SelectedValue) }
                });
        }
    }

    DoRefresh();
}


Пользователь выбрал с какого на какой счёт осуществить перевод, нажал кнопку "Добавить денежный перевод".
В обработчике события нажатия этой кнопки и читаются свойства контролов.
...
Рейтинг: 0 / 0
События WebForms
    #38285659
уываы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAwebformfanпропущено...

Смотрим код выше:
Код: c#
1.
2.


Пользователь выбрал с какого на какой счёт осуществить перевод, нажал кнопку "Добавить денежный перевод".
В обработчике события нажатия этой кнопки и читаются свойства контролов.
не заметил. это понятно, что в обработчике.
а если другой пример: есть страница
и в ней ряд дочерних контролов.
И нужно считать свойтв-во одного из контролов. пейдж лоад тут по-моему не канает. Не читаются свойства.
...
Рейтинг: 0 / 0
События WebForms
    #38285666
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уываынужно считать свойтв-во одного из контролов. пейдж лоад тут по-моему не канает. Не читаются свойства.читаются без проблем
...
Рейтинг: 0 / 0
События WebForms
    #38285692
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уываыskyANAпропущено...

Смотрим код выше:
Код: c#
1.
2.


Пользователь выбрал с какого на какой счёт осуществить перевод, нажал кнопку "Добавить денежный перевод".
В обработчике события нажатия этой кнопки и читаются свойства контролов.
не заметил. это понятно, что в обработчике.
а если другой пример: есть страница
и в ней ряд дочерних контролов.
И нужно считать свойтв-во одного из контролов. пейдж лоад тут по-моему не канает. Не читаются свойства.Смотря что за ствойство и как оно задаётся.
...
Рейтинг: 0 / 0
События WebForms
    #38285694
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что значит не читаются?
...
Рейтинг: 0 / 0
События WebForms
    #38285838
ffffgggghgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAИ что значит не читаются?

создаешь public переменную. МОдифицирешь ее в пейджлоад контрола. В пейджлоад основной страницы оно недоступно. Где павльно инициализировать свойства контролов?
...
Рейтинг: 0 / 0
События WebForms
    #38285856
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Походу ссылку и код я в пустоту запостил.

LoadThe Page object calls the OnLoad method on the Page object, and then recursively does the same for each child control until the page and all controls are loaded. The Load event of individual controls occurs after the Load event of the page.
Use the OnLoad event method to set properties in controls and to establish database connections.
Смысл выделенной строки понятен?
...
Рейтинг: 0 / 0
События WebForms
    #38285857
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если значение свойства сохраняется во ViewState, то его лучше задавать в разметке, или на PreInit.
...
Рейтинг: 0 / 0
События WebForms
    #38285860
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕсли значение свойства сохраняется во ViewState, то его лучше задавать в разметке, или на PreInit.Это относится к значению свойства по умолчанию.
...
Рейтинг: 0 / 0
События WebForms
    #38285977
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ffffgggghghсоздаешь public переменную. МОдифицирешь ее в пейджлоад контрола. В пейджлоад основной страницы оно недоступноприведите текст ошибки компиляции
...
Рейтинг: 0 / 0
События WebForms
    #38286154
asddsaувуву
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot skyANA]Походу ссылку и код я в пустоту запостил.

LoadThe Page object calls the OnLoad method on the Page object, and then recursively does the same for each child control until the page and all controls are loaded. The Load event of individual controls occurs after the Load event of the page.
Use the OnLoad event method to set properties in controls and to establish database connections.
Смысл выделенной строки понятен?[/quotъ

Я это знаю) скажи, а если свойство задается в PageLoad контрола читать его на твой взгляд в пререндер некорректно?
...
Рейтинг: 0 / 0
События WebForms
    #38286380
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asddsaувувуЯ это знаю) скажи, а если свойство задается в PageLoad контрола читать его на твой взгляд в пререндер некорректно?Хм. Смотря что за свойство. Может корректно, а может и полный ахтунг.
...
Рейтинг: 0 / 0
События WebForms
    #38286445
asddsaувуву
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAasddsaувувуЯ это знаю) скажи, а если свойство задается в PageLoad контрола читать его на твой взгляд в пререндер некорректно?Хм. Смотря что за свойство. Может корректно, а может и полный ахтунг.

Ну какие корректно, а какие ахтунг. Пример привести можешь?
...
Рейтинг: 0 / 0
События WebForms
    #38286486
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asddsaувувуskyANAпропущено...
Хм. Смотря что за свойство. Может корректно, а может и полный ахтунг.

Ну какие корректно, а какие ахтунг. Пример привести можешь?Забавно. Ты сам не можешь подробно рассказать, что у тебя за свойства и зачем тебе их задавать в контроле, а читать в пейдже, а от меня пример ждёшь.

Ну ок, допустим в зависимости от значения свойства контрола нам надо вывести или нет на странице фразу "Здравствуй, жопа, Новый год!".
В этом случае проверить значение свойства в OnPreRender - это нормально.

У тебя такой случай?
...
Рейтинг: 0 / 0
События WebForms
    #38286583
asddsaувуву
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAasddsaувувупропущено...


Ну какие корректно, а какие ахтунг. Пример привести можешь?Забавно. Ты сам не можешь подробно рассказать, что у тебя за свойства и зачем тебе их задавать в контроле, а читать в пейдже, а от меня пример ждёшь.

Ну ок, допустим в зависимости от значения свойства контрола нам надо вывести или нет на странице фразу "Здравствуй, жопа, Новый год!".
В этом случае проверить значение свойства в OnPreRender - это нормально.

У тебя такой случай?
У меня нет конкретного случая:) просто в принципе хочется знать в каких корректно в каких не корректно.
Чтобы было правило применив которое можно было понять корректность :) Ибо пишут все кто как а хоца правильно и красиво.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / События WebForms
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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