【问题标题】:Scroll bar reset on GridView in ASP.NET在 ASP.NET 中的 GridView 上重置滚动条
【发布时间】:2010-11-03 06:00:41
【问题描述】:

我在页面中使用GridViewListBox。 Gridview 包含来自数据库绑定的数据为DataSource。单击GridView 中的项目时,列表框会显示子项目。

GridView 中有滚动条时会出现我的问题。当我从网格视图中选择最后一项时,会显示子项并且滚动条会向上。我看不到选择了哪个项目。

【问题讨论】:

    标签: asp.net gridview listbox scrollbar scroll


    【解决方案1】:

    我建议你阅读问题的答案Reset scroll position after Async postback - ASP.NET

    【讨论】:

      【解决方案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) {
             }
        }}
        

        这解决了我的问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-08
          • 2011-06-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-14
          • 2013-07-07
          相关资源
          最近更新 更多