Сохраните позицию прокрутки отделения в странице на обратной передаче

Я думаю, что John корректен.

"Мое основное беспокойство, которое инстанцирует и располагает один огромный класс DataContext все время для отдельных операций, которые касаются определенных областей Базы данных, было бы, налагают ненужное наложение на ресурсы приложений"

, Как Вы поддерживаете тот оператор? Каков Ваш эксперимент, который показывает, что крупный DataContext является узким местом производительности? Наличие нескольких datacontexts много похоже на наличие нескольких баз данных и не имеет смысл в подобных сценариях, то есть, почти никогда. Если Вы работаете с несколькими datacontexts, необходимо отслеживать, которых принадлежат объекты, с которым datacontext и Вы не можете связать объекты, которые не находятся в том же контексте данных. Это - дорогостоящий запах дизайна ни для какой реальной выгоды.

@Evan "DataContext (или Linq к Объектам ObjectContext) является большим количеством "единицы работы", чем соединение", Которое является точно, почему у Вас не должно быть больше чем одного datacontext. Почему Вы хотели бы больше что одна "единица работы" за один раз?

10
задан animuson 16 October 2013 в 17:36
поделиться

4 ответа

Как упомянул Джефф С., одним из способов справиться с этой ситуацией является использование JavaScript для отслеживания положения прокрутки блока div и каждый раз при загрузке страницы сбрасывать положение прокрутки на предыдущее значение.

Вот пример кода:

<html>
<body onload="javascript:document.getElementById('div1').scrollTop = document.getElementById('scroll').value;">
    <form id="form1" runat="server">
    <input type="hidden" id="scroll" runat="server" />
    <div id="div1" style="overflow: auto; height: 100px;" onscroll="javascript:document.getElementById('scroll').value = this.scrollTop">
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        ...........<br />
        <asp:LinkButton ID="LinkButton1" runat="server" Text="test2"></asp:LinkButton>
    </div>
    <asp:LinkButton ID="LinkButton2" runat="server" Text="test1"></asp:LinkButton>
    </form>
</body>
</html>

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

14
ответ дан 3 December 2019 в 17:21
поделиться

Самый простой способ - заключить элемент управления в UpdatePanel.

5
ответ дан 3 December 2019 в 17:21
поделиться

Что происходит, когда кнопки ссылки нажимаются? Какая обработка происходит во время обратной передачи?

В зависимости от ответов на эти вопросы вы можете решить полностью избавиться от обратной передачи и выполнить необходимые операции исключительно на стороне клиента.

(в настоящее время я выполняю такого рода операции). конверсия для клиента.)

0
ответ дан 3 December 2019 в 17:21
поделиться

Один из способов сделать это - захватить в событии onscroll элемента div значения из свойств scrollLeft и scrollTop. Сохраните эти значения в скрытом текстовом поле (ах). При обратной публикации используйте значения из текстовых полей для сброса свойств.

1
ответ дан 3 December 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: