Не сохраняет во Viewstate контрола, если ReadOnly=true
Eten
Дата: 24.06.2010 12:31:03
У текстбокса EnableViewState по умолчанию true. В коде динамически назначаю текстбоку свойство readonly. Замтил такую вещь: если readonly=true, то данные во ViewState не сохраняются. Почему?
Starlex
Дата: 24.06.2010 21:00:05
Eten,
Не правда, viewstate сохраняет.
ShSerge
Дата: 24.06.2010 21:04:08
Имхо, проблема не в сохраняет-не сохраняет, а в чём? Что не получается-то?
ПС. Всё что нужно сохранять для постбека, чтобы восстановилось на странице - всё сохраняется. А не нужное - не сохраняется. Вот в чём вопрос.
Eten
Дата: 25.06.2010 11:07:03
Нашлось решение. Вместо
txtBox.Readonly = true
пишем
txtBox.Attributes["readonly"]="readonly"
Почему первый вариант не работает не понятно...
ShSerge
Дата: 25.06.2010 11:16:01
Eten,
А, понятно. Если написать, как в первом случае, то на странице будет не ридонли, а дизаблед, а во втором - именно ридонли. Это можно проверить на уже сгенерированной для браузера страничке. Фикус-кактус в том, что задизабленные элементы форм не передаются на сервер при сабмите.
Eten
Дата: 25.06.2010 11:33:51
ShSerge,
тогда чем же свойство Enabled от ReadOnly отличается?
ShSerge
Дата: 25.06.2010 11:43:29
<html>
<body>
<form method="GET">
<input type="text" name="t1" disabled="disabled" value="1" />
<br />
<input type="text" name="t2" readonly="true" value="2" />
<br />
<input type="submit" />
</form>
</body>
</html>
Во-первых почувствуйте, так сказать разницу, а во-вторых нажмите на кнопку и посмотрите в строке браузера. Увидите, что на сервер пойдёт только второй инпут.
SanSYS
Дата: 26.06.2010 20:59:46
ShSerge |
Eten,
А, понятно. Если написать, как в первом случае, то на странице будет не ридонли, а дизаблед, а во втором - именно ридонли. Это можно проверить на уже сгенерированной для браузера страничке. Фикус-кактус в том, что задизабленные элементы форм не передаются на сервер при сабмите. |
+1, твоя проблема точно в этом