Обновляется вся страница, даже если gridview находится на панели обновления
-
09-06-2019 - |
Вопрос
У меня есть 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));