powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамический контрол: не могу убрать ViewState
3 сообщений из 3, страница 1 из 1
Динамический контрол: не могу убрать ViewState
    #32425012
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация довольно странная. Воспроизведено на тестовом примере.

Создан UserControl. У него на Page_Load делается следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	public class WebUserControl1 : System.Web.UI.UserControl
	{
		protected System.Web.UI.WebControls.Panel pnlData;

		private void Page_Load(object sender, System.EventArgs e)
		{
			// Put user code to initialize the page here
			Control control = new TextBox();
			control.ID =  "Filter_" +this.ID;
			control.EnableViewState = false;
			((TextBox)control).Text =  "SOME TEXT" ;
			pnlData.Controls.Add(control);
		}

В дизайнере кладу этот контрол и Button на веб-форму WebForm1.aspx. Запускаю проэкт (WebForm1.aspx).

GET:
Сразу отображается EditBox с "SOME TEXT" внутри (так и должно
быть). Заполняю EditBox чем-то другим, нажимаю на кнопку.

POSTBACK:
Не смотря на то, что у контрола EnableViewState = false, пользователь видить НЕ "SOME TEXT", а то, что он ввел. Не могу понять почему.

Я думал, что ViewState применяется между событями Init и Load, а оказывается после Load? Или я чего-то не понимаю....

Как заставить этого динамического контрола после postback отображать всегда "SOME TEXT" (независимо от того, что туда ввел пользователь)?
...
Рейтинг: 0 / 0
Динамический контрол: не могу убрать ViewState
    #32425019
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
textboxы по своему работают.
вам нужно в page_load использовать свойство ispostback объекта page. с его помошью вы как раз сможете разделить, идет первая загрузка у страницы или вторая
то есть нужно

private void Page_Load(object sender, System.EventArgs e)

{

// Put user code to initialize the page here

Control control = new TextBox();

control.ID = "Filter_"+this.ID;

control.EnableViewState = false;
if (! Page.IsPostBack)
{// идет вторая загрузка страницы
((TextBox)control).Text = "SOME TEXT";
}
pnlData.Controls.Add(control);

вроде все
}
...
Рейтинг: 0 / 0
Динамический контрол: не могу убрать ViewState
    #32425070
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что меня НЕ интересует, идет ли первая загрузка или вторая.
Мне надо, чтобы в любом случае пользователю возвращался "SOME TEXT" (и вначале, и на postback).

Этого я как раз и не могу добиться: EnableViewState убрал, в Page_Load мертво прошил "SOME TEXT" - что тогда должно пойти клиету после postback?

По всей логике "SOME TEXT", но в дествительности возвращается то, что клиент туда внес ПЕРЕД postback. Вот этого я и не могу понять.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Динамический контрол: не могу убрать ViewState
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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