На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Проблема с объектами , уничтожается ли содержимое при выходи из фунции???? , ASP.NET
    Помогите пожалуйст ас ASP не работал не пойму в чем дело .Мне надо написать следующее , пользовтель открывает файл файл закидывается на сержвер открывается для реадактирование в удобном интерфайся он редактирует и обратно сохраняет себе на диск.Проблема в том что объект который использовался в одной фунции становится пустым в другой ,каким образом можно работать с обьъектом который был инициализирова в другой фунции?????

    ExpandedWrap disabled
      //обявлен двумерный массив текстбоксов  в начале кода .
        TextBox[,] box;
       
       
      //затем есть кнопка open
      protected void Open_Click(object sender, EventArgs e)
      {
      //тут открывается файл с него читается информация и закидывается в эти текстбоксы которые тутже динамически создаются.
       box = new TextBox[count, 19];
      for(i=0;i<count;i++)
      for (j = 0; j < 19; j++)
       {
                                  
      box[i, j] = new TextBox();
         }
       
      //затем в них закидывается информация из файла потом мне нужно после редактирования этой информации снова сохранить ее в файл
      }
       
      потом у меня кнопка save  которая сохраняет изменения но проблема в том что box[i,j] в ней оказываются пустыми не содержат никакие данные не старые и не измененные??
       
      protected void SAVE_Click(object sender, EventArgs e)
            {
      box[i,j].Text-ничего тут не содержит хотя из файла все было закинуто в них и в сайте это видно .
       
      }

    помогите пожалуйста понять в чем дело , почему в объект ничего нет ?? при входоде из фунции Open?
    Сообщение отредактировано: dozi-ros -
      Дело в том, что объект существует только в момент обработки запроса. После того, как страница отправлена клиенту, все объекты класса страницы уничтожаются.
        Спасибо за ответ, а что можно использовать??

        Добавлено
        Дело в том что мне сперва надо прочитать из файла данные и закинуть их в тексбоксы я это делаю после чего пользователь может отредактировать их и мне надо получить обратно значение этих тексбоксов чтоб снова сохранить в файл.
          Цитата dozi-ros @
          Дело в том что мне сперва надо прочитать из файла данные и закинуть их в тексбоксы я это делаю после чего пользователь может отредактировать их и мне надо получить обратно значение этих тексбоксов чтоб снова сохранить в файл.

          Значения текстбоксов получаешь в OnLoad и записываешь в файл, а в чем проблема?
            в Open_Click добавь код для сохранения "информация из файла потом мне нужно после редактирования этой информации снова сохранить ее в файл " в сессии, а в SAVE_Click читай из сессии.
            как добавить данные в сессию и потом прочитать, тебе уже подсказали в соседней теме
              Смотри ,сперва пользователь делает browse потом Open когда он нажимает open я считываю из файла по количеству информации в нем динамически создается количество текстбоксов
              ExpandedWrap disabled
                 box = new TextBox[count, 19];
                for(i=0;i<count;i++)
                for (j = 0; j < 19; j++)
                 {
                                            
                box[i, j] = new TextBox();
                   }

              потом в этой же фунции я в каждую из box[i,j] помещаю текст из файла
              теперь ты говоришь если напшисать тут
              ExpandedWrap disabled
                void Page_Load(Object sender, EventArgs e)
                      {
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Filepath)"))
                          {
                                for(.......
                 
                             sw.WriteLine(box[i, j].Text);
                 
                          }
                          
                 
                }

              я попробовал так тоже не получается потому что объект инициализирован в фунции опен а в лоаде в нем ничего нету опять таки

              Добавлено
              Цитата

              в Open_Click добавь код для сохранения "информация из файла потом мне нужно после редактирования этой информации снова сохранить ее в файл " в сессии, а в SAVE_Click читай из сессии.
              как добавить данные в сессию и потом прочитать, тебе уже подсказали в соседней теме

              я пробовал с сессиями , сессия копирует объект потом я не могу узнать какие изменения были сделаны с данным тексбоксом в фунции Save_Click.
              Если испоьзую сессию у меня в этих боксах всегда неизмененные данные какими они были при нажатии на опен такими и остаются
                Надо сохранять количество CheckBox'ов во ViewState, потом создавать эти текстбоксы в Page_Init, только не забывать им назначать ID, тогда все будет тип-топ:

                ExpandedWrap disabled
                  protected void Page_Init (object sender, EventArgs e)
                  {
                    if (IsPostBack)
                    {
                      object o = ViewState ["numTextBoxes"];
                      if (o != null)
                      {
                        createTextBoxes ((int)o);
                      }
                    }
                  }
                   
                  protected void Page_Load (object sender, EventArgs e)
                  {
                    if (IsPostBack)
                    {
                      // здесь читаешь данные из текстбоксов
                    }
                  }
                   
                  protected void Open_Click(object sender, EventArgs e)
                  {
                    createTextBoxes (5);
                   
                    ViewState ["numTextBoxes"] = 5;
                  }
                   
                  void createTextBoxes (int k)
                  {
                    for (int i=0; i<k; i++)
                    {
                      TextBox tb = new TextBox ();
                      tb.ID = "TextBox" + i.ToString();
                      this.Form.Controls.Add (tb);
                    }  
                  }
                  Цитата
                  Надо сохранять количество CheckBox'ов во ViewState, потом создавать эти текстбоксы в Page_Init, только не забывать им назначать ID, тогда все будет тип-топ:

                  ExpandedWrap disabled
                    protected void Page_Load (object sender, EventArgs e)
                    {
                      if (IsPostBack)
                      {
                        // здесь читаешь данные из текстбоксов
                     
                    [B]
                    Извини а как могу тут получить данные из твоего tb?? если напишу tb он ясно что тут будет невидим если сделаю глобальным твой Texbox tb
                    и потом попытаюсь сделать тут что то такое tb.Text  то в нем ничего не будет
                    [/B]
                      }
                    }

                  извини если простой очень вопрос просто я не ас ASP.

                  пожалуйста приведи пример как мне считать из данных текстбоксов ,зарание благодарю!
                    Цитата dozi-ros @
                    то в нем ничего не будет

                    будет
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0338 ]   [ 16 queries used ]   [ Generated: 27.04.24, 10:49 GMT ]