Включение состояния просмотра не работает с элементами управления в веб-части - PullRequest
2 голосов
/ 22 сентября 2009

Что у меня есть?

У меня есть простая веб-часть, которая имеет Table. Таблица имеет два элемента управления: TextBox и Button. В методе CreateChildControls() я добавляю элементы управления в таблицу, если значение !Page.IsPostBack равно true. И в таблице включено состояние просмотра.

Что я хочу сделать?

Я хочу, чтобы элементы управления в таблице присутствовали после обратной записи.

С какой проблемой я сталкиваюсь?

Я, кроме элементов управления, TextBox и Button должен присутствовать в таблице после поста обратно. Но этого не происходит.

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

Может кто-нибудь сказать, если я что-то упустил?

Заранее спасибо!

Обновление:

Я попытался установить EnbleViewState свойство веб-части. Все тот же результат.

Код:

public class TreeWebPart : Microsoft.SharePoint.WebPartPages.WebPart
    {
        private Table table;
        private Button clickMe;
        private TextBox content;

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

            BuildTable();
        }

        private void BuildTable()
        {
            table = new Table();
            clickMe = new Button();
            content = new TextBox();

            table.ID = "myTable";
            table.EnableViewState = true;

            if (!this.Page.IsPostBack)
            {
                clickMe.Text = "Click Me!";
                clickMe.Click += new EventHandler(clickMe_Click);

                content.Text = "Click button to set text";
                content.Width = Unit.Pixel(200);

                TableCell cell = new TableCell();
                cell.Controls.Add(content);

                TableRow tr = new TableRow();
                tr.Cells.Add(cell);
                table.Rows.Add(tr);

                cell = new TableCell();
                cell.Controls.Add(clickMe);

                tr = new TableRow();
                tr.Cells.Add(cell);
                table.Rows.Add(tr);

            }
            this.Controls.Add(table);
        }

        protected void clickMe_Click(object sender, EventArgs e)
        {
            content.Text = DateTime.Now.ToLongDateString() + "  " + DateTime.Now.ToLongTimeString();
        }
    }

1 Ответ

1 голос
/ 22 сентября 2009

Поскольку состояние просмотра сохраняется только в измененном состоянии элемента управления во всех обратных передачах, а не в самих элементах управления, динамически добавленные элементы управления должны быть добавлены на веб-страницу ASP.NET как при первом посещении, так и при всех последующих обратных передачах. Для получения дополнительной информации посетите Здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...