Обновление всей страницы, даже если gridview находится на панели обновления - PullRequest
2 голосов
/ 29 августа 2008

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

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

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

Ответы [ 10 ]

3 голосов
/ 29 августа 2008

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

2 голосов
/ 14 октября 2008

У меня была эта проблема, и я наткнулся на следующую статью:

http://bloggingabout.net/blogs/rick/archive/2008/04/02/linkbutton-inside-updatepanel-results-in-full-postback-updatepanel-not-triggered.aspx

Моя кнопка не была динамически создана в коде, как в этом примере, но когда я проверил код в aspx, достаточно было пропустить свойство ID. При добавлении идентификатора постбэк стал асинхронным и начал вести себя как ожидалось.

Итак, в общем, проверьте, есть ли у вашей кнопки идентификатор!

2 голосов
/ 29 августа 2008

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

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

1 голос
/ 31 декабря 2008

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

<xhtmlConformance mode="Legacy"/>

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

1 голос
/ 30 августа 2008

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

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />
0 голосов
/ 28 ноября 2015

Для предотвращения постбэков добавьте return false к событию onclick.

button.attribute.add ("onclick", "return false;");

Пример:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
0 голосов
/ 07 ноября 2012

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

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

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

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

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

0 голосов
/ 30 августа 2008

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

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

0 голосов
/ 29 августа 2008

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

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

   <base target="_self" /> 

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

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

...