условие If является событием загрузки страницы, закомментировано. Если я переключаю часть комментария в событии загрузки страницы, это работает отлично в обоих случаях. Мой вопрос, почему это heppening?
В раскрывающемся списке есть данные, даже если вы не привязываете их во второй раз после обратной отправки .......... это потому что его элемент управления на стороне сервера, а каждый элемент управления на стороне сервера имеет свое состояние просмотра с ним, это да это не удаление данных.
IsPostBack - это правда, когда вы делаете публикацию обратно, используя элементы управления на стороне сервера, такие как раскрывающийся список, флажок, текстовое поле............. Когда вы загружаете страницу в первый раз, это свойство имеет значение false, но в последующий запрос к той же странице значение этого свойства является истинным. вы можете проверить документ msdn для получения более подробной информации об этом.
Ответ 2 · рейтинг 3 · Mitchel Sellers
IsPostBack сообщает вам, является ли это вторым запросом на страницу. Преимущество здесь в том, что если вам нужно сделать что-то дорогостоящее, например вызов базы данных для заполнения раскрывающегося списка или подобное, вы можете сделать это, когда !IsPostback, а затем использовать ViewState для сохранения значений.
Чтобы выразить это конкретно для вашей ситуации
С использованием:
if (!IsPostBack)
{
BindProgramDDL();
}
В результате BindProgramDDL будет вызываться ТОЛЬКО при первой загрузке страницы, все AJAX или другие взаимодействия пользователя со страницей НЕ будут вызывать BindProgramDDL;
Без этого КАЖДАЯ загрузка страницы вызывала бы метод, без необходимости обращаясь к базе данных для записей.
Ответ 3 · JConstantine
По сути, это говорит о том, посещаете ли вы страницу в первый раз (не публикуете ответ) или пользователь щелкнул элемент управления (обратный пост).
Полезно, когда вы хотите запускать методы только один раз при начальной загрузке страницы.
Ваш код, вероятно, должен выглядеть так, чтобы достичь наилучших результатов.
Я подозреваю, что DropDownList сохраняет элементы во ViewState и затем работает с ними во время всех последующих запросов. Вот почему ваш код работает, даже если DataSource редактора установлен только тогда, когда IsPostBack возвращает false.
Ответ 5 · Sergey Metlov
Событие PostBack появляется при каждом действии (также ajax), кроме загрузки первой страницы.
Ответ 6 · mamoo
Страница.IsPostBack
указывает, отображается ли страница в первый раз или загружается в ответ на обратную передачу.
Поскольку вы привязали свой источник данных при первой загрузке страницы, данные все еще находятся в состоянии представления, и вам не нужно обновлять элемент управления (если источник данных не изменился).
Также примите во внимание, что, поскольку вы используете ajax, вы также можете перехватить, если была "асинхронная обратная передача". См. http://encosia.com/are-you-making-these-3-common-aspnet-ajax-mistakes/