【问题标题】:Scroll bar reset on GridView in ASP.NET在 ASP.NET 中的 GridView 上重置滚动条
【发布时间】:2010-11-03 06:00:41
【问题描述】:
我在页面中使用GridView 和ListBox。 Gridview 包含来自数据库绑定的数据为DataSource。单击GridView 中的项目时,列表框会显示子项目。
GridView 中有滚动条时会出现我的问题。当我从网格视图中选择最后一项时,会显示子项并且滚动条会向上。我看不到选择了哪个项目。
【问题讨论】:
标签:
asp.net
gridview
listbox
scrollbar
scroll
【解决方案2】:
您需要在回发之前生成行 ID 或记录滚动位置。使用
javascript函数
yourGridId.scrollTo(x,y)
并传递您在回发之前保存的之前的 x 和 y 位置。
将值保存在隐藏字段中,以便在服务器端访问。
【解决方案3】:
解决方案:
放置一个隐藏字段为
<input type="hidden" id="hdnScrollTop" runat="server" value="0" />
并在div添加一个函数
<div id="dvScroll" onscroll="$get('ctl00_ContentPlaceHolder1_hdnScrollTop').value = this.scrollTop;">
JavaScript:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(pageLoaded);
prm.add_beginRequest(beginRequest);
var postbackElement;
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof (postbackElement) == "undefined") {
return;
}
if (postbackElement.id.indexOf('gridViewList') > -1) {
try {
$get("divScroll").scrollTop = $get("ctl00_ContentPlaceHolder1__hdnScrollTop").value;
}
catch (Err) {
}
}}
这解决了我的问题。