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 ;)