Невозможно сохранить значение метки во время постбэк (нажатие кнопки) в sharepoint - PullRequest
0 голосов
/ 07 сентября 2011

При написании кода для соединения двух веб-частей я создал две метки.текстовое значение для обеих меток было записано в методе OnPreRender.Однако я забыл добавить элемент управления для одной метки в методе CreateChildControl.Таким образом, во время отладки я заметил, что после отправки назад метка , чей элемент управления я забыл добавить , не сохранила значение, и она показала пустую строку . Но другая лейбл, чей контроль я добавил, смог сохранить значение .

protected override void CreateChildControls()
    {
        base.CreateChildControls();




        btnup.Text = "  Update";

        this.Controls.Add(lblid);//**If i add this, the label retains the value during post back , otherwise its null**


        this.Controls.Add(lblname);
        this.Controls.Add(lbldesig);
        this.Controls.Add(tbdes);
        this.Controls.Add(lblcomp);
        this.Controls.Add(tbcomp);
        this.Controls.Add(btnup);

        btnup.Click += new EventHandler(btnup_Click);
    }


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

        if (connectionInterface != null)
        {

            id = connectionInterface.parameter1;

            SPWeb mysite = SPContext.Current.Web;
            SPList mylist = mysite.Lists["UpdateList"];
            SPListItemCollection itemcol = mylist.Items;

            foreach (SPListItem itm in itemcol)
            {
                string nm = itm["Company_Id"].ToString();
                if (nm.Equals(id))
                {
                    lblid.Text = itm["Company_Id"].ToString();
                    lblname.Text = itm["Name"].ToString();
                    l
                }

            }


        }
        else
        {
            lblname.Text = "nothing is recieved!";
        }

    }

Почему он так себя ведет?

1 Ответ

0 голосов
/ 07 сентября 2011

Это нормальное поведение.Если вы не добавите элемент управления в коллекцию Controls, платформа ASP.NET не сохранит его значение при обратной передаче и, следовательно, будет потеряна при обратной передаче.

...