我正在显示这样的Datagrid,并邀请用户进行选择......
<div id="gradesDiv" style="overflow: auto; width: 380px; height: 300px">
<asp:DataGrid id="gradesGrid"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="true"
runat="server">
<Columns>
<asp:ButtonColumn HeaderText="Select Item"
ButtonType="LinkButton"
Text="Select"
CommandName="Select">
</asp:ButtonColumn>
</Columns>
</asp:DataGrid>
</div>
(代码隐藏中添加了另外三列)。但是当用户进行选择时,执行回发并且滚动位置丢失。我希望能够重置div以显示所选项目。有谁知道怎么做?
我尝试过添加
MaintainScrollPositionOnPostback="true"
到asp,但它没有帮助。我试图在代码隐藏中保持滚动位置,但gradeDiv似乎不可用于代码隐藏。
答案 0 :(得分:1)
网上有很多关于如何做到这一点的创意方法。只需搜索 - 在回发时维护div滚动位置。这只是其中一个例子:
<script type="text/javascript">
$(document).ready(function () {
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
var divId = 'gradesDiv';
function BeginRequestHandler(sender, args) {
xPos = $get(divId).scrollLeft;
yPos = $get(divId).scrollTop;
}
function EndRequestHandler(sender, args) {
$get(divId).scrollLeft = xPos;
$get(divId).scrollTop = yPos;
}
});
</script>