Hepimiz projelerimizde olmazsa olmaz control olan DataGrid veya GridView ı kullanıyoruz. Peki göstermemiz gereken verinin çok fazla ise, hiç kimse 20 sayfa aşagı uzanan bir gride bakmak istemez.

Bunun 3 çözümü var.

1. Klasik olan sayfalama yontemi, controllerin içinde mevcut olan AllowPaging özelligi sayesinde her sayfada kaç satırın gösterilecegini ve sayfalama methodunu seçmemiz yeterli.

2. iframe kullanarak o GridViewi oraya yerleştirmek, iframe sabit bir bouyt vermek Height="200px" Width="400px" gibi Scrolling i de Auto yapmamız yeterli.

3. Bu Son çözüm bence en şık olanı eger sayfalama istemiyor ve butun kayıtları görüntülemek istiyorsanız, bu çözüm tam size göre.

   ilk olarak grid i göstermek istidiginiz sayfada HTML kodlarının içinde gridi bu DIV satırlarının arasına koyun

<DIV style="OVERFLOW: auto; HEIGHT:330px">
         datagrid veya gridview nesnesi buraya
</DIV>

İşte bu satırlar grid view i kaydırma çubugu içerinde çok hoş bir şekilde göstericek sanki bi fram içerinde gibi. Lakin bir sorun oluşacak siz aşagı dogru scroll yapınca grid in header i yani column isimleride görünmez olacak.O yuzden grid in headerinin sabitlenmesi gerekicek. Buyüzden bu CSS trik ini kullanıcaz...

Sayfanızın <HEAD> tagları arasına da bu stili ekleyelim

<style type="text/css">
.DataGridFixedHeader {background-color: white; position:relative; top:expression(this.offsetParent.Top-1)
;}
</style>


Ekledikten sonra tek yapmamız gereken gridin header e bu CSS i uygulamak. 2 yolu mevcut 

   1. Design aşamasında gride tıklayıp Properties den "Header" i seçip "CssClass" a şunu yazmak

               "ms-formlabel DataGridFixedHeader"

   2. yada HTML sekmesinden koda eklemek 

               <asp:DataGrid id="dgContacts" runat="server" ... >...   
               <HeaderStyle CssClass="ms-formlabel DataGridFixedHeader"></HeaderStyle>...

ne kadar kolay demi ;)