Потеря большей части содержимого страницы при втором постбэке - PullRequest
1 голос
/ 05 июля 2010

это очень сложно объяснить и дать код на его основе.Так что спасибо вам сейчас, если вы даже попытаетесь помочь

У меня есть форма с панелью обновлений.Это отправляет форму и проверяет ее.Возвращая строку errorMessage любого недопустимого поля, такого как «Поле xyz является обязательным полем, поле abc должно быть количеством»

Когда я ввожу неправильную дату, оно отправляет обратно в порядке и отображает текст в div ввнизу страницы, на которую нацелена панель обновления.(и только это должно измениться)

Это работает, но во второй раз, когда я нажимаю, скажем (скажем, я ввел неверные данные дважды), Полная форма исчезнет, ​​оставив мне только баннер сайта и сообщение об ошибкеэто возвращается.

Я попытался закомментировать весь пост кода, чтобы кнопка фактически ничего не делала, но у нее все еще есть та же проблема (конечно, на этот раз у нее не будет создано сообщение об ошибке)

Так что я могу только думать, что это как-то связано с самой панелью обновления и с тем, как она работает, но я смотрю на это целую вечность и не имею больше идей!

Ответы [ 3 ]

1 голос
/ 05 июля 2010

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

Часто, когда у меня возникают проблемы со второй или последующей обратной передачей, это происходит из-за запуска кода инициализации, когда я этого не хочу.

Мой совет: посмотрите, где вы проверяете if (Page.IsPostback) и if (Page.IsCallback), и поэкспериментируйте с ними. Возможно, вам необходимо защитить свой серверный код, который обрабатывает форму в следующем блоке:

if (Page.IsCallback)
{

}
0 голосов
/ 20 июля 2012

Я только что боролся с подобной проблемой.Примерно через 5 часов я решил попробовать это:

UpdateMode="Conditional"

для моей панели обновления, и она перестала вызывать вторую обратную передачу !!!

0 голосов
/ 05 июля 2010

Я нашел проблему (примерно через 5 часов), но не понимаю ее.Панель обновления, которая отображалась, имела панель обновления, которую я использовал вне ее

    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnTabs" />
    </Triggers>
</asp:UpdatePanel>
<asp:PlaceHolder runat="server" ID="phldActionButtons" />

Внутри этого элемента-заполнителя был элемент управления с моей панелью обновления, которую я использовал.Закрывающая панель обновления, которую вы видите, была содержимым формы

. Простое перемещение заполнителя внутри шаблона содержимого, похоже, решило проблему.(не уверен, почему он будет скрывать / удалять целую панель обновлений, единственное отношение к которой было то, что это была форма, которую он проверял на обратной передаче!

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