Обновляется вся страница, даже если gridview находится на панели обновления

StackOverflow https://stackoverflow.com/questions/34798

Вопрос

У меня есть gridview, который находится внутри updatepanel для модального всплывающего окна, которое у меня есть на странице.
Проблема в том, что вся страница обновляется каждый раз, когда я нажимаю imagebutton, который находится в моем gridview.Это приводит к загрузке всей моей страницы, и поскольку я выделил серым цветом остальную часть страницы, чтобы пользователь не мог нажать на нее, это очень раздражает.

Кто-нибудь знает, чего мне не хватает?

Редактировать: Я ввел лучшее решение внизу

Это было полезно?

Решение 5

Через несколько месяцев эта проблема была исправлена. Проект, в котором я работал, был предыдущим v1.1, который был преобразован с 2.0. Однако в файле web.config эта строка осталась:

<xhtmlConformance mode="Legacy"/>

Когда это было закомментировано, все ошибки, которые у нас были с инструментарием управления ajax, исчезли

Другие советы

Убедитесь, что на UpdatePanel установлен следующий набор: ChildrenAsTriggers = false и UpdateMode = Условный

есть ли у вас ChildrenAsTriggers = " false " на панели обновления?

Есть ли какие-либо ошибки JavaScript на странице?

Вы тестируете в Firefox или IE? У нас есть похожая проблема, когда вся страница обновляется в Firefox (но не в IE). Чтобы обойти это, мы используем скрытую кнопку asp: with useSubmitBehavior = & Quot; false & Quot; набор.

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />

Появляется ли модальное окно с помощью модального окна IE? Или это DIV, который вы показываете?

Если это модальное всплывающее окно IE, вы должны убедиться, что у вас есть

   <base target="_self" /> 

Чтобы убедиться, что сообщение находится на модальной странице.

Если это DIV, убедитесь, что у вас правильный XHTML, или он может не знать, что обновлять.

Я бы оставил onClick и установил его как триггер для updatePanel.

Странно, что это работает в FF, а не в IE. Это противоположно поведению, которое мы испытываем.

UpdatePanels могут быть чувствительными к искаженному HTML. Сделайте View Source из вашего браузера и запустите его через что-то вроде валидатора W3C, чтобы найти что-нибудь странное (незакрытый div или таблица - обычные подозреваемые)

Если вы используете Firefox, есть расширение HTML Addator, которое работает очень хорошо.

Для справки..

Я также заметил, что при использовании страшного <asp:UpdatePanel ... /> и <asp:LinkButton ... />, это , а также UpdateMode="Conditional" на UpdatePanel требуются следующие другие изменения:

  • ViewStateMode="Enabled" требуется на <asp:Content ... /> (Я установил его на Disabled в MasterPage)
  • ClientIDMode="Static" пришлось удалить из <%@ Page ... />

Чтобы предотвратить повторную отправку, добавьте return false к событию onclick.

button.attribute.add("onclick","возвращает false;");

Образец:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
scroll top