На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Как повторно изменить размер элемента управления , ASP.NET, C#
    Событие для кнопки Button1 должно при каждом нажатии на кнопку удлинять ее на 10 пикселей. Однако на деле это происходит только один раз. Второе, третье и так далее нажатия размеры кнопки не изменяют. Такое ощущение, что .Width.Value содержит размер кнопки, заданный при разработке.

    Где я не прав? И еще я подозреваю, что я сильно не прав в последней строчке с т.з. небыдлокода. Как написать иначе? С Web-программированием столкнулся впервые, надо быстро наверстать основы.


    ExpandedWrap disabled
      protected void Button1_Click(object sender, EventArgs e)
              {
                  double b1w;
                  b1w = Button1.Width.Value + 10d;
                  Button1.Width = (Unit)b1w;
              }
    Сообщение отредактировано: SO -
      Ладно, может, кому-то более знакома следующая ситуация. На странице есть два текстовых поля и кнопка. При загрузке страницы выполняется следующий код:

      ExpandedWrap disabled
        protected void Page_Load(object sender, EventArgs e)
                {
                    TextBox1.Text = "Введите адрес электронной почты";
                    TextBox2.Text = "Введите пароль";
                    Button1.Text = "Войти";
                }



      Пользователь на странице вводит свой e-mail и пароль и тыкает по кнопке.

      Однако при обработке события нажатия кнопки в свойстве TextBox1.Text все так же лежит "Введите адрес электронной почты", а не то, что ввел пользователь. Если же в Page_Load ничего не заполнять, то в Text1Box1.Text будет содержаться именно то, что ввел пользователь. Что я делаю не так? Устал уже. Чувствую, что надо что-то сделать с PostBack, но не могу понять, что именно.





      Добавлено
      Ларчик просто открывался.

      В Page_Load перед установкой значений текстбоксов нужно было вставить проверку на postback (т.е. на первичное отображение страницы):


      ExpandedWrap disabled
        protected void Page_Load(object sender, EventArgs e)
                {
                    if (!IsPostBack) return;
                    TextBox1.Text = "Введите адрес электронной почты";
                    TextBox2.Text = "Введите пароль";
                    Button1.Text = "Войти";
                }



      Удивительно, что в интернете описание такой ситуации с инициализацией страницы не находится влоб, воспользовался книжкой.
      Сообщение отредактировано: SO -
        По второму вопросу: данную инициализацию надо проводить в Page_Init.

        Добавлено
        По первому: если задана ширина кнопки в дизайнере, то

        Button1.Width += new Unit (10, Unit.Pixel);

        по идее должно работать.
          Цитата Uncle_Bob @
          По первому: если задана ширина кнопки в дизайнере, то

          Button1.Width += new Unit (10, Unit.Pixel);

          по идее должно работать.


          Не, проблема была в том же Postback, что и во втором случае. За более правильный синтаксис спасибо.
            В Init должно работать и без Postback
              В Init - да.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0728 ]   [ 16 queries used ]   [ Generated: 2.05.24, 05:20 GMT ]