有没有办法制作可滚动的gridview而不将其放在div中?

时间:2013-02-20 04:11:44

标签: c# asp.net css gridview styles

我知道可以通过将gridview包含在div中并使溢出变为auto来使gridview可滚动。但我正在使用表来对齐我的页面并发现将div放入td并不一定是个好主意,那么还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

你可以使用这个库。它是crosss浏览器并无缝工作。 Scrolling grid

<yourNameSpace:ScrollingGrid runat="server" ID=sg1 
       Width=450 Height=240 CssClass=sgTbl>

    <asp:DataGrid runat="server" ID=Grid2 CellPadding=5 CellSpacing=1
      AutoGenerateColumns=True AllowSorting=True 
      AllowPaging=True PageSize=35>
        <HeaderStyle BackColor=red ForeColor=white Font-Bold=True />
        <ItemStyle BackColor=#fefefe />
        <AlternatingItemStyle BackColor=#eeeeee />
        <PagerStyle BackColor=silver ForeColor=White 
                    Mode=NumericPages />
    </asp:DataGrid>

  </yourNameSpace:ScrollingGrid>

这将自动使您的gridview可以使用固定标头滚动。

答案 1 :(得分:0)

由于gridview是读者table

尝试使用overflow CSS属性。还有单独的属性来定义仅水平溢出(overflow-x)和垂直溢出(overflow-y)的行为。

由于您只想要垂直滚动,请尝试:

table {
  height: 500px;
  overflow-y: scroll;
}

修改

显然<table>个元素不尊重overflow属性。这似乎是因为<table>元素默认情况下不会呈现为display: block(它们实际上有自己的显示类型)。您可以通过将overflow元素设置为块类型来强制<table>属性工作:

table {
  display: block;
  height: 500px;
  overflow-y: scroll;
}

请注意,这将导致元素具有100%的宽度,因此如果您不希望它占据页面的整个水平宽度,则还需要为元素指定显式宽度。