2013-02-20 45 views
1

我知道一個GridView可以通過將它包含在div中並使溢出自動滾動來進行滾動。但是我使用表格來對齊我的頁面,發現在td中放置div不一定是個好主意,所以還有其他方法嗎?有沒有辦法讓一個可滾動的gridview沒有把它放在div裏面?

+0

http://www.codeproject.com/Articles/11636/ScrollingGrid-A-cross-browser-freeze-header-two-wa – 2013-02-20 04:14:32

+4

您正在使用表格進行頁面對齊,並且擔心使用* div *在td裏面是一個壞主意? :p誰說在td中使用div是個壞主意? – 2013-02-20 04:14:39

+0

@AnthonyPegram好的一個:P – 2013-02-20 04:15:20

回答

0

你可以使用這個庫。它是跨瀏覽器並且無縫工作。 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可以通過固定標題進行滾動。

+0

感謝您的答覆,但它似乎並不與「Gridview」一起工作,我可能會做錯什麼? – n00b 2013-02-20 05:19:45

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%的寬度,所以如果你不希望它佔用整個頁面的水平寬度,你也需要爲元素指定一個明確的寬度。

相關問題