Значение ASP.NET Combo Box, кажется, меняется, когда я отключаю его в Javascript - PullRequest
3 голосов
/ 12 декабря 2008

У меня есть форма, в которой пользователь может выбрать тип компонента из поля со списком, и в зависимости от этого компонента они могут или не могут выбрать тип данных из другого поля со списком.

Когда пользователь выбирает тип компонента, на стороне клиента запускается изменение на стороне клиента, и при необходимости устанавливается значение поля со списком типа данных, а при необходимости отключается поле со списком типа данных. Вот странная вещь: когда эта форма отправляется, серверная сторона получает значение этого поля со списком типов данных, и это не то, что я установил!

Я, кажется, сузил его до одной строки JavaScript:

document.all("cmbDataType").disabled = true;

Если эта строка закомментирована, она все равно будет установлена ​​на правильное значение в зависимости от типа компонента, но не отключена, а отправка формы даст серверу правильное значение на основе значения, выбранного клиентом.

Если эта строка выполняется, то, несмотря на то, что пользователь видит правильное значение в этом отключенном поле со списком, значение, возвращаемое на сервер, неверно.

Мне не удалось найти никого другого с такой же проблемой, поэтому я надеюсь, что это не что-то сверхъестественное. Браузер IE7, веб-приложение ASP.NET 2.0. Спасибо за внимание!

1 Ответ

2 голосов
/ 12 декабря 2008

Причина, по которой это происходит, заключается в том, что ASP.NET 2.0 не передает значения отключенных элементов управления по умолчанию. (Точнее, он не обновляет значения серверного элемента управления после отправки.) Вы можете переопределить это, добавив следующую строку в событие Page_Load:

Page.Form.SubmitDisabledControls = true;

Или вы можете установить значение в теге формы:

<form id="myForm" runat="server" SubmitDisabledControls="true">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...