Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / События WebForms / 25 сообщений из 25, страница 1 из 1
03.06.2013, 18:17
    #38284179
webformfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
Cсылку на толковое описание для
чего использовать события WebForms?
PageInit итп
...
Рейтинг: 0 / 0
03.06.2013, 18:21
    #38284186
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
...
Рейтинг: 0 / 0
03.06.2013, 21:09
    #38284380
webformfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
skyANA ASP.NET Page Life Cycle Overview
ты сам -то на формах пишешь? и если да, то в каком событии что делаешь?
...
Рейтинг: 0 / 0
04.06.2013, 08:11
    #38284624
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
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
04.06.2013, 13:24
    #38285119
asddsaувуву
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
если, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?
...
Рейтинг: 0 / 0
04.06.2013, 13:54
    #38285170
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
asddsaувувуесли, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
...
Рейтинг: 0 / 0
04.06.2013, 14:21
    #38285215
asddsaувуву
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
skyANAasddsaувувуесли, например, данные, которые получены в контроле
нужны в родительском элементе как делаешь?Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
:) Имею ввиду пользовательский контрол. В нем получаем некоторые данные, а эти данные нужны на странице его вызвавшей
...
Рейтинг: 0 / 0
04.06.2013, 15:25
    #38285323
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
asddsaувувуskyANAпропущено...
Подробнее задачу опиши.
А то TextBox - это контрол, его данные - это свойство Text. Как делаю? Обращаюсь к свойству Text, фигли.
:) Имею ввиду пользовательский контрол. В нем получаем некоторые данные, а эти данные нужны на странице его вызвавшейи что мешает сделать у этого контрола публичное свойство?
...
Рейтинг: 0 / 0
04.06.2013, 15:38
    #38285355
webformfan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
Паганельasddsaувувупропущено...

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

Ничего не мешает.
А в каком событии родительского контрола Вы это публичное свойство обычно читаете?
...
Рейтинг: 0 / 0
04.06.2013, 15:39
    #38285361
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
обычно Page_Load
...
Рейтинг: 0 / 0
04.06.2013, 17:15
    #38285540
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
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
04.06.2013, 18:56
    #38285659
уываы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
skyANAwebformfanпропущено...

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


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

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


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

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

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
04.06.2013, 22:22
    #38285857
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
Если значение свойства сохраняется во ViewState, то его лучше задавать в разметке, или на PreInit.
...
Рейтинг: 0 / 0
04.06.2013, 22:24
    #38285860
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
skyANAЕсли значение свойства сохраняется во ViewState, то его лучше задавать в разметке, или на PreInit.Это относится к значению свойства по умолчанию.
...
Рейтинг: 0 / 0
05.06.2013, 00:20
    #38285977
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
ffffgggghghсоздаешь public переменную. МОдифицирешь ее в пейджлоад контрола. В пейджлоад основной страницы оно недоступноприведите текст ошибки компиляции
...
Рейтинг: 0 / 0
05.06.2013, 08:08
    #38286154
asddsaувуву
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
[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
05.06.2013, 11:12
    #38286380
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
asddsaувувуЯ это знаю) скажи, а если свойство задается в PageLoad контрола читать его на твой взгляд в пререндер некорректно?Хм. Смотря что за свойство. Может корректно, а может и полный ахтунг.
...
Рейтинг: 0 / 0
05.06.2013, 11:44
    #38286445
asddsaувуву
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События WebForms
skyANAasddsaувувуЯ это знаю) скажи, а если свойство задается в PageLoad контрола читать его на твой взгляд в пререндер некорректно?Хм. Смотря что за свойство. Может корректно, а может и полный ахтунг.

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

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

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

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


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

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

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


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