在网格视图中获取垂直滚动的动态高度

问题描述:

朋友们,


我曾尝试过使用垂直网格法来查看网格,但是页面上的价位会根据下拉菜单select进行更改.所以我不能具有静态高度,因为在一个选择中只有两个记录需要显示,而在另一个选择中要显示8-24条记录.

任何人都可以与我共享代码吗?

谢谢

我使用了以下脚本,并在CS页面中调用了功能

Hi friends,


i had tried verical scrol for a grid vew,But the vales on the page will change according to the dropdown select.so i cant have a static height because on one select there are only two records which has to be displayed and on another select there are 8-24 records to get displayed .

Can any one share the code with me ?

Thanks

i used the below script and called the funtion in cs page

ScriptManager.RegisterStartupScript(Page, this.GetType(), "Key", "<script>MakeStaticHeader('" + grdaccess.ClientID + "',180,800,40,true);</script>", false);



    function MakeStaticHeader(gridId, height, width, headerHeight, isFooter) {
           var tbl = document.getElementById(gridId);
           if (tbl) {
               var DivHR = document.getElementById('DivHeaderRow');
               var DivMC = document.getElementById('DivMainContent1');
               var DivFR = document.getElementById('DivFooterRow');


               //*** Set divheaderRow Properties ****
               DivHR.style.height = headerHeight + 'px';
               DivHR.style.width = (parseInt(width) - 16) + 'px';
               DivHR.style.position = 'relative';
               DivHR.style.top = '0px';
               DivHR.style.zIndex = '10';
               DivHR.style.verticalAlign = 'top';


               //*** Set divMainContent Properties ****

               DivMC.style.width = width + 'px';
               DivMC.style.height = 'relative';
               DivMC.style.position = 'relative';
               DivMC.style.top = -headerHeight + 'px';
               DivMC.style.zIndex = '1';


               //*** Set divFooterRow Properties ****
               DivFR.style.width = (parseInt(width) - 16)+ 'px';
               DivFR.style.position = 'relative';
               DivFR.style.top = -headerHeight + 'px';
               DivFR.style.verticalAlign = 'top';
               DivFR.style.paddingtop = '2px';


               if (isFooter) {
                   var tblfr = tbl.cloneNode(true);
                   tblfr.removeChild(tblfr.getElementsByTagName('tbody')[0]);
                   var tblBody = document.createElement('tbody');
                   tblfr.style.width = '100%';
                   tblfr.cellSpacing = "0";


                   tblfr.border = "0px";
                   tblfr.rules = "none";
                   //*****In the case of Footer Row *******
                   tblBody.appendChild(tbl.rows[tbl.rows.length - 1]);
                   tblfr.appendChild(tblBody);
                   DivFR.appendChild(tblfr);
               }
               //****Copy Header in divHeaderRow****
               DivHR.appendChild(tbl.cloneNode(true));
           }
       }






       function OnScrollDiv(Scrollablediv) {
           document.getElementById('DivHeaderRow').scrollLeft = Scrollablediv.scrollLeft;
           document.getElementById('DivFooterRow').scrollLeft = Scrollablediv.scrollLeft;
       }

将gridview保留在div或面板中,并使该div或面板可滚动.
Keep your gridview inside a div or panel and make that div or panel scrollable.



像下面的代码一样将其放在可滚动的div中

Hi,
put it in scrollable div like the code below

<div style="height:400px; overflow:scroll">

<asp:gridview id="GridView1" runat="server">
    </asp:gridview>

</div>