SelectetValue не возвращает выбранное значение в ASP.NET DropDownList - PullRequest
1 голос
/ 01 апреля 2011

Я постепенно схожу с ума из-за следующей проблемы: На моей странице ASP.NET (цель: .NET 4.0) у меня есть следующее объявление DropDownList:

<asp:DropDownList ID="cmbRequestState" runat="server" EnableViewState="true">
    <asp:ListItem Text="Pending" Value="0"></asp:ListItem>
    <asp:ListItem Text="Open" Value="1"></asp:ListItem>
    <asp:ListItem Text="Closed" Value="2"></asp:ListItem>
</asp:DropDownList> 

В *Событие 1005 * в коде позади. Например, для cmbRequestState установлено значение «2» - все в порядке, значение, отображаемое в поле со списком в браузере, «Закрыто», так как соответствующий тег <option> в HTML имеетselected="selected" attribute.

Затем я выбираю «Открыть» и выполняю обратную передачу с помощью кнопки «Сохранить» на моей странице.Когда я извлекаю SelectedValue для cmbRequestState в коде кнопки, он по-прежнему равен «2», хотя я выбрал «1».

Теперь я не пишу приложения ASP.NET слишком часто, но у меня есть некоторые знания в программировании на HTML и PHP, и из моего опыта работы с WinForms и WPF я бы ожидал, что SelectedValue будет содержать значение, которое выбрано в настоящее время ... Кроме того, я не хочу выполнять обратную передачу каждый разпользователь выбирает значение из списка.

Что мне здесь не хватает?Как мне убедиться, что при открытии страницы выбрано текущее состояние запроса, и все равно получить новый выбор, если пользователь вносит изменения?

Ответы [ 2 ]

3 голосов
/ 01 апреля 2011

В Page_Load проверьте, является ли это запросом обратной передачи. Если это так, не инициализируйте поле со списком.

if (!IsPostback) {
    cmbRequestState.SelectedValue = "2";
}
3 голосов
/ 01 апреля 2011

В соответствии с жизненным циклом страницы , выбранное значение, которое вы назначаете в событии Page_Load, перезаписывает значение, которое вы устанавливаете в событии OnClick кнопки.Вы должны попытаться соответствовать жизненному циклу страницы при назначении значений вашим элементам управления.

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