ASP. NET UpdatePanel мигает при частичной обратной передаче в IE11 на Windows 10, когда он имеет прокручиваемый div - PullRequest
0 голосов
/ 08 февраля 2020

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

Эта проблема появляется только в IE11 под Windows 10. В других браузерах проблема не повторяется, даже в IE11 под Windows 8.1 все работает нормально.

Моя версия IE11 на Windows 10 (в более старом IE11 на Windows 10 была такая же ошибка)

enter image description here

Мой тест page aspx code (я только что создал пустой веб-проект с этой страницей)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestIEFlicker.aspx.cs" Inherits="IEFlickering.TestIEFlicker" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
            <ContentTemplate>
                <div style="width: 1000px; height: 300px; background-color: antiquewhite; overflow-x: auto;">
                    <div style="width: 1500px; height: 200px; background-color: aquamarine;">
                        <asp:Button ID="Button1" runat="server" UseSubmitBehavior="true" />
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

Пожалуйста, помогите, эта проблема полностью сломает мое корпоративное приложение, когда клиенты обновятся до Windows 10, и да, они продолжают использовать IE11 ...

Такая прокрутка используется во многих элементах сайта: GridView, DetailsViews и т. Д. c. Это выглядит очень некрасиво.

1 Ответ

0 голосов
/ 10 февраля 2020

Попробуйте установить свойство Page.MaintainScrollPositionOnPostBack в True.

Код, как показано ниже:

<%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" CodeBehind="TestIEFlicker.aspx.cs" Inherits="IEFlickering.TestIEFlicker" %>

Редактировать :

Это поведение браузера по умолчанию IE (ошибка) или оно также может быть связано с AjaxControlToolkit. Существует обходной путь, вы можете использовать JQuery Ajax для вызова веб-методов (или веб-API), а затем обновить частичное содержимое html вместо использования AjaxControl.

Вот несколько статей по теме Об использовании JQuery ajax в Asp. net вы можете обратиться к ним:

Частичные обновления страницы с jQuery AJAX

ASP. net AJAX операции с базой данных и частичное обновление страницы

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