Mes suggestions n serait de passer à un ListView au lieu d'un GridView. ListView est nouveau dans .Net 3.5, et a fait des merveilles pour moi exactement pour le scénario dont vous parlez. Scott Guthrie en a un good example sur son blog.
Voici un exemple pour une grille 3x4 de photos de mon site personnel ...
<ul id="thumbnails">
<asp:ListView runat="server" ID="PicturesListView" ItemPlaceholderID="PicturesListItemPlaceholder"
DataSourceID="PicturesDataSource">
<LayoutTemplate>
<li runat="server" id="PicturesListItemPlaceholder"></li>
</LayoutTemplate>
<ItemTemplate>
<li>
<a href='Photos/<%# Eval("WebImageId") %>.jpg' class="thickbox" rel="gallery-test"
title='<%# Eval("Caption") %>'>
<img src="Photos/<%# Eval("ThumbnailId") %>.jpg" alt='<%# Eval("Caption") %>' />
</a></li>
</ItemTemplate>
</asp:ListView>
</ul>
et mon CSS à la ligne choses est ...
/* Picture Thumbnails */
#thumbnails ul
{
width: 800px;
list-style: none;
}
#thumbnails li
{
text-align: center;
display: inline;
width: 200px;
height: 130px;
float: left;
margin-bottom: 20px;
}