У меня есть GridView, отображаемый в div, который содержится в элементе управления UpdatePanel на странице asp.net. Div настроен так, чтобы сделать GridView прокручиваемым, когда он отображает много информации, одновременно делая другую информацию в панели обновлений стабильной.Сохранять положение прокрутки DIV в UpdatePanel через Postback
В любом случае элементы в GridView можно кликать, но позиция прокрутки содержащего div не сохраняется через обратную передачу, независимо от того, что я пытаюсь сделать. В настоящее время я пытаюсь решить проблему с помощью jQuery, поскольку это кажется самым простым способом. Мой код следующим образом:
<head id="Head1" runat="server">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
var scroll = function() {
Y: '#<%= scrollPos.ClientID %>'
};
$(document).ready(function() {
$("#subResults").scrollTop($(scroll.Y).val());
$('#subResults').scroll(function() {
$(scroll.Y).val(this.scrollTop);
});
});
</script>
</head>
<body>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="resultPanel" runat="server" ChildrenAsTriggers="True" UpdateMode="Conditional">
<ContentTemplate>
<div id="subResults">
<asp:GridView ID="resultGrid" runat="server"
AutoGenerateColumns="false" Visible="True"
AutoGenerateSelectButton="True"
OnRowDataBound="resultGrid_RowDataBound"
OnSelectedIndexChanged="resultGrid_SelectedIndexChanged">
<Columns>
// columns columns columns...
</Columns>
</asp:GridView>
<asp:HiddenField ID="scrollPos" runat="server" Value="0" />
</div>
</body>
Я использую пример, приведенный here. Я пытаюсь сделать это точно так, как указано, или нет, это не сработает: мой элемент GridView берет клик, делает то, что он должен делать, а затем GridView снова прокручивается назад в начало после завершения обратной передачи. Как я могу заставить div «subResults» удерживать свою позицию прокрутки через Postback?